フッターコンテンツにスキップ
PYTHONヘルプ

PyArrow(開発者向けのしくみ)

PyArrow は、Apache Arrow フレームワークに対する Python インターフェースを提供する強力なライブラリです。 Apache Arrow は、メモリ内データのためのクロスランゲージ開発プラットフォームです。 これは、モダンなハードウェア上での効果的な分析操作のために組織された、フラットおよび階層データの標準化された言語非依存のカラム形式メモリフォーマットを指定しています。 PyArrow は、基本的に Apache Arrow の Python バインディングを Python パッケージとして実現したものです。 PyArrow は、異なるデータ処理システムおよびプログラミング言語間の効率的なデータ交換と相互運用性を可能にします。 この記事の後半で、IronPDFIron Software によって開発された PDF 生成ライブラリについても学びます。

PyArrow の主な機能

  1. カラム形式メモリフォーマット:

    PyArrow は、メモリ内の分析操作のために非常に効率的なカラム形式メモリフォーマットを使用します。 このフォーマットにより、より良い CPU キャッシュ使用とベクトル化された操作が可能になり、データ処理タスクに最適です。 PyArrow は、カラム形式の性質により、Parquet ファイル構造を効率的に読み書きできます。

  2. 相互運用性: PyArrow の主な利点の 1 つは、シリアル化やデシリアル化なしに異なるプログラミング言語やシステム間のデータ交換を容易にする能力です。 これは、データサイエンスや機械学習など、複数の言語が使われる環境で特に有用です。
  3. Pandas との統合: PyArrow は Pandas のバックエンドとして使用でき、高効率なデータ操作と保存を可能にします。 Pandas 2.0 から、データを NumPy 配列の代わりに Arrow 配列に保存できるようになり、特に文字列データを扱う際に性能向上が期待できます。
  4. 様々なデータ型のサポート: PyArrow は、プリミティブ型(整数、浮動小数点数)、複合型(構造体、リスト)、ネスト型を含む様々なデータ型をサポートします。これにより、異なる種類のデータを扱う際に柔軟性が提供されます。
  5. ゼロコピー読み取り: PyArrow はゼロコピー読み取りを可能にし、データを Arrow メモリフォーマットからコピーせずに読めるようにします。 これによりメモリオーバーヘッドが削減され、パフォーマンスが向上します。

インストール

PyArrow をインストールするには、pip または conda のどちらかを使用します:

pip install pyarrow
pip install pyarrow
SHELL

または

conda install pyarrow -c conda-fまたはge
conda install pyarrow -c conda-fまたはge
SHELL

基本的な使い方

私たちは、コードエディターとして Visual Studio Code を使用しています。 まず、新しいファイルpyarrowDemo.pyを作成します。

以下は、PyArrow を使用してテーブルを作成し、基本的な操作を行う簡単な例です:

impまたはt pyarrow as pa
impまたはt pyarrow.dataset as pt

# Create a PyArrow table
data = [
    pa.array([1, 2, 3]),
    pa.array(['a', 'b', 'c']),
    pa.array([1.1, 2.2, 3.3])
]
table = pa.Table.from_arrays(data, names=['col1', 'col2', 'col3'])

# Display the table
print(table)
impまたはt pyarrow as pa
impまたはt pyarrow.dataset as pt

# Create a PyArrow table
data = [
    pa.array([1, 2, 3]),
    pa.array(['a', 'b', 'c']),
    pa.array([1.1, 2.2, 3.3])
]
table = pa.Table.from_arrays(data, names=['col1', 'col2', 'col3'])

# Display the table
print(table)
PYTHON

コードの説明

Python のコードは、3 つの配列(pa.array)からテーブル(pa.Table)を作成するために PyArrow を使用します。 その後、テーブルを出力して、それぞれ対応する整数、文字列、浮動小数点のデータを含む"col1"、"col2"、"col3"という名前の列を表示します。

出力

pyarrow(How It Wまたはks Fまたは Developers): 図 1 - PyArrow テーブルオブジェクトとその内容を表示するコンソール出力。

Pandas との統合

PyArrow は、Pandas とシームレスに統合してパフォーマンスを向上させ、特に大規模なデータセットを扱うときに有用です。 以下は Pandas DataFrame を PyArrow Table に変換する例です:

impまたはt pandas as pd
impまたはt pyarrow as pa

# Create a Pandas DataFrame
df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c'],
    'col3': [1.1, 2.2, 3.3]
})

# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)

# Display the table
print(table)
impまたはt pandas as pd
impまたはt pyarrow as pa

# Create a Pandas DataFrame
df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c'],
    'col3': [1.1, 2.2, 3.3]
})

# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)

# Display the table
print(table)
PYTHON

コードの説明

Python のコードは Pandas DataFrame を PyArrow table (pa.Table) に変換し、テーブルを出力します。 DataFrame は整数、文字列、浮動小数データを持つ 3 つの列(col1col2col3)で構成されています。

出力

pyarrow (開発者向けの仕組み): 図2 - Pandas DataFrameをPyArrowテーブルに変換して生成されたPyArrowテーブルオブジェクトを表示するコンソール出力。

高度な機能

1. ファイルフォーマット

PyArrow は、Parquet や Feather などのさまざまなファイルフォーマットの読み書きをサポートしています。 これらのフォーマットはパフォーマンス向上のために最適化され、データ処理パイプラインで広く使用されています。

2. メモリマッピング

PyArrow は、メモリマッピングされたファイルアクセスをサポートしており、データセット全体をメモリに読み込むことなく、大規模なデータセットの効率的な読み書きを可能にします。

3. プロセス間通信

PyArrow は、プロセス間通信のためのツールを提供しており、異なるプロセス間での効率的なデータ共有を可能にします。

IronPDFの紹介

pyarrow(How It Wまたはks Fまたは Developers): 図 3 - IronPDF fまたは Python: Python PDF Library

IronPDF は、Python で PDF ファイルを扱うことを容易にし、プログラム的に PDF ドキュメントの作成、編集、および操作を可能にするライブラリです。 PDFからHTMLへのPDFの生成、既存のPDFにテキスト、画像、図形を追加する機能、およびPDFファイルからテキストと画像を抽出する機能などがあります。 主な機能は次の通りです:

HTML からの PDF 生成

IronPDF は、HTML ファイル、HTML 文字列、URL を PDF ドキュメントに簡単に変換できます。 Chrome PDF レンダラーを利用して、ウェブページを直接 PDF フォーマットでレンダリングします

クロスプラットフォーム互換性

IronPDF は Python 3+ をサポートし、Windows、Mac、Linux、およびクラウドプラットフォーム全体でスムーズに動作します。 .NETJavaPython、および Node.js でもサポートされています。

編集と署名機能

プロパティを設定し、パスワードやアクセス権限などのセキュリティ機能を追加し、デジタル署名を適用することで PDF ドキュメントを強化します。

カスタムページテンプレートと設定

IronPDF を使用すると、カスタマイズ可能なヘッダー、フッターページ番号、および調整可能な余白で PDF をカスタマイズできます。 レスポンシブレイアウトをサポートし、カスタム用紙サイズの設定を可能にします。

標準準拠

IronPDF は、PDF/A や PDF/UA などの PDF 標準に準拠しています。 UTF-8 文字エンコーディング をサポートし、画像、CSS スタイル、フォントなどのアセットをシームレスに処理できます。

IronPDF と PyArrow を使用して PDF ドキュメントを生成する

IronPDF 必要条件

  1. IronPDF は .NET 6.0 を基礎技術として使用しています。 したがって、システムに .NET 6.0 ランタイム がインストールされている必要があります。
  2. Python 3.0+: Python のバージョン 3 以降がインストールされている必要があります。
  3. pip: Python パッケージインストーラー pip をインストールして IronPDF パッケージをインストールします。

必要なライブラリをインストール:

pip install pyarrow 
pip install ironpdf
pip install pyarrow 
pip install ironpdf
SHELL

その後、IronPDF と PyArrow の Python パッケージの使用方法を示すために以下のコードを追加します:

impまたはt pandas as pd
impまたはt pyarrow as pa
from ironpdf impまたはt * 

# Apply your license key
License.LicenseKey = "license"

# Create a Pandas DataFrame
df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c'],
    'col3': [1.1, 2.2, 3.3]
})

# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)

# Display the table
print(table)

#create a PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with pyarrow</h1>"
content += "<p>table data</p>"

# Iterate over table rows
fまたは row in table:
    # Access specific values in a row
    value_in_column1 = row[0]
    value_in_column2 = row[1]
    value_in_column3 = row[2]
    # Append row data to content
    content += "<p>"+str(value_in_column1)+","+str(value_in_column2)+","+str(value_in_column3)+"</p>"    

# Render the HTML content to a PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Expまたはt to a file または stream
pdf.SaveAs("DemoPyarrow.pdf")
impまたはt pandas as pd
impまたはt pyarrow as pa
from ironpdf impまたはt * 

# Apply your license key
License.LicenseKey = "license"

# Create a Pandas DataFrame
df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': ['a', 'b', 'c'],
    'col3': [1.1, 2.2, 3.3]
})

# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)

# Display the table
print(table)

#create a PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with pyarrow</h1>"
content += "<p>table data</p>"

# Iterate over table rows
fまたは row in table:
    # Access specific values in a row
    value_in_column1 = row[0]
    value_in_column2 = row[1]
    value_in_column3 = row[2]
    # Append row data to content
    content += "<p>"+str(value_in_column1)+","+str(value_in_column2)+","+str(value_in_column3)+"</p>"    

# Render the HTML content to a PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Expまたはt to a file または stream
pdf.SaveAs("DemoPyarrow.pdf")
PYTHON

コードの説明

このスクリプトは Pandas、PyArrow、IronPDF ライブラリを統合して、Pandas DataFrame に保存されたデータから PDF ドキュメントを作成することを示しています:

  1. Pandas DataFrame の作成:

    • 数値データと文字列データを含む 3 つの列(col1col2col3)を持つ Pandas DataFrame (df) を作成します。
  2. PyArrow テーブルへの変換:

    • Pandas DataFrame (df) を pa.Table.from_pandas() メソッドを使用して PyArrow テーブル (table) に変換します。 この変換により、効率的なデータ処理と Arrow ベースのアプリケーションとの相互運用性が促進されます。
  3. IronPDF での PDF 生成:

    • IronPDF の ChromePdfRenderer を使用し、その RenderHtmlAsPdf メソッドを呼び出して、PyArrow テーブル(table)から抽出されたヘッダーとデータを含む HTML 文字列(content)から PDF ドキュメント(DemoPyarrow.pdf)を生成します。

出力

pyarrow(How It Wまたはks Fまたは Developers): 図 4 - Pandas DataFrame を PyArrow テーブルに変換して生成された PyArrow テーブルオブジェクトを表示するコンソール出力。

出力 PDF

pyarrow(How It Wまたはks Fまたは Developers): 図 5 - IronPDF fまたは Python Library を使用して生成し、PyArrow テーブルから行ごとのデータを表示する出力 PDF。

IronPDF ライセンス

IronPDF fまたは Python

スクリプトの冒頭にIronPDFパッケージを使用する前にライセンスキーを配置します。

from ironpdf impまたはt * 
# Apply your license key
License.LicenseKey = "key"
from ironpdf impまたはt * 
# Apply your license key
License.LicenseKey = "key"
PYTHON

結論

PyArrow は、Python のデータ処理タスクの能力を向上させる多用途で強力なライブラリです。 その効率的なメモリフォーマット、相互運用性機能、および Pandas との統合により、データサイエンティストやエンジニアにとって必要不可欠なツールとなっています。 大規模なデータセットを扱う場合、複雑なデータ操作を行う場合、またはデータ処理パイプラインを構築する場合、PyArrow はこれらのタスクを効果的に処理するために必要なパフォーマンスと柔軟性を提供します。 一方、IronPDF は、Python アプリケーションから直接 PDF ドキュメントの作成、操作、レンダリングを簡単にする強力な Python ライブラリです。 既存の Python フレームワークとシームレスに統合され、開発者が PDF を動的に生成およびカスタマイズできるようにします。 また、PyArrow および IronPDF の両方の Python パッケージを使用することで、ユーザーはデータ構造を容易に処理し、データをアーカイブできます。

IronPDF は、開発者が開始するための包括的なドキュメントを提供し、強力な機能を示す多くのコード例が付属しています。 詳細については、ドキュメントおよびコード例のページをご覧ください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。