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 記憶體格式中讀取資料而無需複製它。 這樣可以減少記憶體佔用,提高效能。
安裝
pip install pyarrowpip install pyarrow或者
conda install pyarrow -c conda-f或者geconda install pyarrow -c conda-f或者ge基本用法
我們使用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 程式碼使用 PyArrow 從三個陣列 (pa.array) 建立一個表格 (pa.Table)。 然後列印出表格,顯示名為"col1"、"col2"和"col3"的列,每列包含對應的整數、字串和浮點數資料。
輸出

與 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 程式碼將 Pandas DataFrame 轉換為 PyArrow 表格(pa.Table),然後列印表格。 此 DataFrame 由三個欄位組成(col3),分別包含整數、字串和浮點數資料。
輸出

進階功能
1. 文件格式
PyArrow 支援讀取和寫入各種檔案格式,例如 Parquet 和 Feather。 這些格式針對效能進行了最佳化,並廣泛應用於資料處理流程中。
2. 記憶體映射
PyArrow 支援記憶體映射檔案訪問,無需將整個資料集載入到記憶體中即可有效率地讀取和寫入大型資料集。
3. 進程間通信
PyArrow 提供進程間通訊工具,實現不同進程之間的高效資料共享。
IronPDF簡介

IronPDF是一個 Python 庫,它簡化了 PDF 文件的操作,支援以程式設計方式建立、編輯和操作 PDF 文件等任務。 它提供從 HTML 生成 PDF 、向現有 PDF 添加文字、圖像和形狀以及從 PDF 文件中提取文字和圖像等功能。 以下是一些主要特點:
從 HTML 產生 PDF
IronPDF可以輕鬆地將 HTML 檔案、HTML 字串和 URL 轉換為 PDF 文件。 使用 Chrome PDF 渲染器將網頁直接渲染成 PDF 格式。
跨平台相容性
IronPDF與 Python 3+ 相容,可在 Windows、Mac、Linux 和雲端平台上無縫運作。 它也支援.NET 、 Java 、 Python和Node.js
編輯和簽名功能
透過設定屬性、新增密碼和權限等安全功能以及套用數位簽章來增強 PDF 文件。
自訂頁面模板和設置
使用IronPDF,您可以自訂 PDF 的頁首、頁尾、頁碼和可調式邊距。 它支援響應式佈局,並允許設定自訂紙張尺寸。
標準合規性
IronPDF符合 PDF 標準,包括 PDF/A 和 PDF/UA。 它支援UTF-8 字元編碼,並能無縫處理圖像、CSS 樣式和字體等資源。
使用IronPDF和 PyArrow 產生 PDF 文檔
IronPDF先決條件
- IronPDF使用.NET 6.0 作為其底層技術。 所以,你的系統需要安裝.NET 6.0 執行環境。
- Python 3.0+:您需要安裝 Python 版本 3 或更高版本。
- pip:安裝 Python 套件安裝程式pip以安裝IronPDF套件。
安裝必要的庫:
pip install pyarrow
pip install ironpdfpip install pyarrow
pip install ironpdf然後加入以下程式碼來示範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")程式碼解釋
這個腳本示範如何整合 Pandas、PyArrow 和IronPDF庫,以根據儲存在 Pandas DataFrame 中的資料建立 PDF 文件:
1.創建 Pandas DataFrame:
* 建立一個 Pandas DataFrame (`df`),其中包含三列 (`col1`, `col2`, `col3`),這些欄位包含數值和字串資料。2.轉換為 PyArrow 表格:
* 使用 `df` 方法將 Pandas DataFrame (`table`) 轉換為 PyArrow Table (`pa.Table.from_pandas()`)。 這種轉換有助於高效處理數據,並實現與基於 Arrow 的應用程式的互通性。3.使用IronPDF產生 PDF:
* 使用 IronPDF 的**ChromePdfRenderer**並呼叫其**RenderHtmlAsPdf**方法,從 HTML 字串 (`content`) 產生 PDF 文件 (`DemoPyarrow.pdf`),其中包含從 PyArrow 表 (`table`) 提取的標題和資料。輸出

輸出 PDF

IronPDF許可
在使用IronPDF軟體包之前,請將許可證密鑰放在腳本的開頭:
from ironpdf imp或者t *
# Apply your license key
License.LicenseKey = "key"from ironpdf imp或者t *
# Apply your license key
License.LicenseKey = "key"結論
PyArrow是一個功能強大且用途廣泛的函式庫,可增強 Python 在資料處理任務方面的能力。 其高效的記憶體格式、互通性以及與 Pandas 的集成,使其成為資料科學家和工程師的必備工具。 無論您是處理大型資料集、執行複雜的資料操作,還是建立資料處理管道, PyArrow都能提供有效處理這些任務所需的效能和靈活性。 另一方面, IronPDF是一個強大的 Python 庫,它簡化了直接從 Python 應用程式建立、操作和渲染 PDF 文件的過程。 它與現有的 Python 框架無縫集成,使開發人員能夠動態生成和自訂 PDF。 結合PyArrow和IronPDF Python 包,使用者可以輕鬆處理資料結構並歸檔資料。
IronPDF也提供全面的文檔,幫助開發人員快速上手,並附有大量程式碼範例,展示其強大的功能。 更多詳情請參閱文件和程式碼範例頁面。










