跳過到頁腳內容
PYTHON 幫助

pyarrow(開發人員工作原理)

PyArrow是一個功能強大的函式庫,它為 Apache Arrow 框架提供了一個 Python 介面。 Apache Arrow 是一個用於記憶體資料的跨語言開發平台。 它規定了一種標準化的、與語言無關的列式記憶體格式,用於儲存平面和分層數據,以便在現代硬體上進行高效的分析操作。 PyArrow本質上是將 Apache Arrow Python 綁定實作為一個 Python 套件。 PyArrow實現了不同資料處理系統和程式語言之間的高效資料交換和互通性。 本文稍後也將介紹IronPDF ,這是一個由Iron Software開發的 PDF 生成庫。

PyArrow 的主要特性

1.列式記憶體格式

PyArrow 使用列式記憶體格式,這種格式對於記憶體分析操作來說非常有效率。 這種格式可以更好地利用 CPU 快取並實現向量化操作,使其成為資料處理任務的理想選擇。 由於 parquet 檔案結構是列式的,PyArrow 可以有效率地讀寫 parquet 檔案結構。 

2.互通性:PyArrow 的主要優勢之一是它能夠促進不同程式語言和系統之間的資料交換,而無需序列化或反序列化。 這在數據科學和機器學習等使用多種語言的環境中尤其有用。 3.與 Pandas 整合:PyArrow 可用作 Pandas 的後端,從而實現高效的資料操作和儲存。 從 Pandas 2.0 開始,可以將資料儲存在 Arrow 陣列中而不是 NumPy 陣列中,這可以提高效能,尤其是在處理字串資料時。 4.支援多種資料類型:PyArrow 支援多種資料類型,包括基本類型(整數、浮點數)、複雜類型(結構體、列表)和巢狀類型。這使其能夠靈活地處理不同類型的資料。 5.零拷貝讀取:PyArrow 允許零拷貝讀取,這意味著可以從 Arrow 記憶體格式中讀取資料而無需複製它。 這樣可以減少記憶體佔用,提高效能。

安裝

要安裝PyArrow ,您可以使用pipconda

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 程式碼使用 PyArrow 從三個陣列 ( pa.array ) 建立一個表格 ( pa.Table )。 然後列印出表格,顯示名為"col1"、"col2"和"col3"的列,每列包含對應的整數、字串和浮點數資料。

輸出

! pyarrow(開發者使用方法):圖 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 表格 ( pa.Table ),然後列印表格。 此 DataFrame 由三個欄位( col1col2col3 )組成,分別包含整數、字串和浮點數資料。

輸出

! pyarrow(開發者使用方法):圖 2 - 控制台輸出顯示透過將 Pandas DataFrame 轉換為 PyArrow 表而產生的 PyArrow 表物件。

進階功能

1. 文件格式

PyArrow 支援讀取和寫入各種檔案格式,例如 Parquet 和 Feather。 這些格式針對效能進行了最佳化,並廣泛應用於資料處理流程中。

2. 記憶體映射

PyArrow 支援記憶體映射檔案訪問,無需將整個資料集載入到記憶體中即可有效率地讀取和寫入大型資料集。

3. 進程間通信

PyArrow 提供進程間通訊工具,實現不同進程之間的高效資料共享。

介紹 IronPDF。

! pyarrow(開發者使用指南):圖 3 - IronPDF f或 Python:Python PDF 函式庫

IronPDF是一個 Python 庫,它簡化了 PDF 文件的操作,支援以程式設計方式建立、編輯和操作 PDF 文件等任務。 它提供從 HTML 生成 PDF 、向現有 PDF 添加文字、圖像和形狀以及從 PDF 文件中提取文字和圖像等功能。 以下是一些主要功能:

從 HTML 產生 PDF

IronPDF 可以輕鬆地將 HTML 檔案、HTML 字串和 URL 轉換為 PDF 文件。 使用 Chrome PDF 渲染器將網頁直接渲染成 PDF 格式。

跨平台相容性

IronPDF 與 Python 3+ 相容,可在 Windows、Mac、Linux 和雲端平台上無縫運作。 它也支援.NETJavaPythonNode.js。

編輯和簽名功能

透過設定屬性、新增密碼和權限等安全功能以及套用數位簽章來增強 PDF 文件。

自訂頁面模板和設置

使用 IronPDF,您可以自訂 PDF 的頁首、頁尾頁碼和可調式邊距。 它支援響應式佈局,並允許設定自訂紙張尺寸。

標準合規性

IronPDF 符合 PDF 標準,包括 PDF/A 和 PDF/UA。 它支援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:

* 建立一個包含三列( `col1` 、 `col2` 、 `col3` )的 Pandas DataFrame( `df` ),其中包含數值和字串資料。

2.轉換為 PyArrow 表格:

* 使用`pa.Table.from_pandas()`方法將 Pandas DataFrame ( `df` ) 轉換為 PyArrow Table ( `table` )。 這種轉換有助於高效處理數據,並實現與基於 Arrow 的應用程式的互通性。

3.使用 IronPDF 產生 PDF:

* 使用 IronPDF 的**ChromePdfRenderer**並呼叫其**RenderHtmlAsPdf**方法,從 HTML 字串( `content` )產生 PDF 文件( `DemoPyarrow.pdf` ),其中包含從 PyArrow 表( `table` )提取的標題和資料。

輸出

! pyarrow(開發者使用方法):圖 4 - 控制台輸出顯示透過將 Pandas DataFrame 轉換為 PyArrow 表而產生的 PyArrow 表物件。

輸出 PDF

! pyarrow(開發者使用方法):圖 5 - 使用 IronPDF f或 Python 庫產生的輸出 PDF,並顯示 PyArrow 表中的逐行資料。

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 庫,它簡化了直接從 Python 應用程式建立、操作和渲染 PDF 文件的過程。 它與現有的 Python 框架無縫集成,使開發人員能夠動態生成和自訂 PDF。 結合PyArrowIronPDF Python 包,使用者可以輕鬆處理資料結構並歸檔資料。

IronPDF也提供全面的文檔,幫助開發人員快速上手,並附有大量程式碼範例,展示其強大的功能。 更多詳情請參閱文件程式碼範例頁面。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。