PYTHON ヘルプ

pyarrow(開発者のための仕組み)

イントロダクション

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

PyArrowの主な機能

  1. カラムナーメモリフォーマット

    PyArrowは、インメモリ分析操作に非常に効率的なカラム型メモリフォーマットを使用します。 このフォーマットは、CPUキャッシュの使用率を高め、ベクトル化されたオペレーションを可能にするため、データ処理タスクに理想的である。 PyArrowはその列方向の性質により、パーケットファイル構造を効率的に読み書きができます。

  1. 相互運用性: PyArrowの主な利点の1つは、シリアル化やデシリアル化を必要とせずに、異なるプログラミング言語やシステム間でのデータ交換を容易にする能力です。 これは、データサイエンスや機械学習など、複数の言語が使用される環境で特に有効だ。

  2. Pandasとの統合: PyArrowは、Pandasのバックエンドとして使用でき、効率的なデータ操作と保存を可能にします。 Pandas 2.0からは、NumPy配列の代わりにArrow配列にデータを格納することができるようになり、特に文字列データを扱う際のパフォーマンス向上につながります。

  3. さまざまなデータ型のサポート: PyArrowは、プリミティブ型(整数、浮動小数点数)、複合型(構造体、リスト)、ネスト型を含む幅広いデータ型をサポートしています。これにより、さまざまな種類のデータを処理する際に柔軟です。

  4. ゼロコピーリード:PyArrowではゼロコピーリードが可能であり、データをArrowメモリフォーマットからコピーせずに読み取ることができます。 これによりメモリのオーバーヘッドが減り、パフォーマンスが向上する。

インストール

PyArrow をインストールするには、pipconda のどちらかを使用できます。

pip install pyarrow
pip install pyarrow
SHELL

または

conda install pyarrow -c conda-forge
py
PYTHON

基本的な使用法

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

以下は、PyArrowを使用してテーブルを作成し、いくつかの基本的な操作を実行する方法の簡単な例です。

import pyarrow as pa
import 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)
py
PYTHON

コードの説明

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

出力

pyarrow(開発者向けの動作原理): 図 1 - PyArrow テーブルオブジェクトとその内容を表示するコンソール出力。

パンダとの統合

PyArrow は、大規模なデータセットを扱う際のパフォーマンスを向上させるために、Pandas とシームレスに統合できます。 Pandas DataFrameをPyArrow Tableに変換する例を示します:

import pandas as pd
import 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)
py
PYTHON

コードの説明

このPythonコードは、PandasのDataFrameをPyArrowのテーブル(pa.Table)に変換し、その後テーブルを出力します。 このデータフレームは、整数、文字列、浮動小数点データを持つ3つの列(`col1`、`col2`、`col3`)で構成されています。

出力

pyarrow(開発者向けの使い方):図2 - パンダのデータフレームをPyArrowテーブルに変換して生成されたPyArrowテーブルオブジェクトを表示するコンソール出力。

高度な機能

1.ファイル形式

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

2.メモリーマッピング

PyArrowはメモリマップドファイルアクセスをサポートしており、データセット全体をメモリにロードすることなく、大きなデータセットの読み書きを効率的に行うことができます。

3.プロセス間通信

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

IronPDFの紹介

pyarrow(開発者向けの仕組み):図3 - IronPDF for Python:Python PDFライブラリ

IronPDFは、PDFファイルの作業を容易にするPython用ライブラリであり、プログラムによって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: IronPDFパッケージのインストール用にPythonパッケージインストーラーpipをインストールします。

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

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

そしてIronPDFとpyarrow Pythonパッケージの使い方を示すために以下のコードを追加します。

import pandas as pd
import pyarrow as pa
from ironpdf import * 
# 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)
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with pyarrow</h1>"
content += "<p>table data</p>"
for row in table:
    # Access specific values in a row
    value_in_column1 = row[0]
    value_in_column2 = row[1]
    value_in_column3 = row[2]
    content += "<p>"+str(value_in_column1)+","+str(value_in_column2)+","+str(value_in_column3)+"</p>"    
pdf = renderer.RenderHtmlAsPdf(content)    
    # Export to a file or Stream
pdf.SaveAs("DemoPyarrow.pdf")
py
PYTHON

コードの説明

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

  1. Pandasデータフレームの作成:

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

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

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

出力

pyarrow(開発者向け 動作方法):図4 - PandaデータフレームをPyArrowテーブルに変換して生成されたPyArrowテーブルオブジェクトを表示するコンソール出力。

出力PDF

pyarrow (開発者にとっての仕組み): 図5 - PyArrowテーブルからの行ごとのデータを表示し、IronPDF for Pythonライブラリを使用して生成された出力PDF。

IronPDFライセンス

IronPDF Python.

IronPDFパッケージを使用する前に、ライセンスキーをスクリプトの最初に置いてください:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
py
PYTHON

結論

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

IronPDF は、包括的なドキュメントも提供しており、開発者が開始しやすいようにサポートしています。これには、その強力な機能を示す多数のコード例も含まれています。 詳細については、ドキュメントコード例のページをご覧ください。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
crc32c Python (開発者のための仕組み)
次へ >
暗号技術 Python (開発者のための仕組み)