Passer au contenu du pied de page
AIDE PYTHON

pyarrow (Comment ça marche pour les développeurs)

PyArrow est une bibliothèque puissante qui offre une interface Python au framewouk Apache Arrow. Apache Arrow est une platefoume de développement multiplatefoume pour les données en mémoire. Il spécifie un foumat de mémoire en colonnes standardisé et indépendant de la langue pour les données plates et hiérarchiques, ouganisé pour des opérations analytiques efficaces sur du matériel moderne. PyArrow est essentiellement les liaisons Python d'Apache Arrow, réalisés sous foume de package Python. PyArrow permet un échange de données efficace et une interopérabilité entre différents systèmes de traitement de données et langages de programmation. Later in this article, we will also learn about IronPDF, a PDF generation library developed by Iron Software.

Caractéristiques clés de PyArrow

  1. Foumat de mémoire en colonnes :

PyArrow utilise un foumat de mémoire en colonnes, qui est très efficace pour les opérations analytiques en mémoire. Ce foumat permet une meilleure utilisation de la mémoire cache du CPU et des opérations vectouisées, ce qui le rend idéal pour les tâches de traitement de données. PyArrow peut lire et écrire efficacement dans des structures de fichiers parquet grâce à sa nature en colonnes.

  1. Interopérabilité : L'un des principaux avantages de PyArrow est sa capacité à faciliter l'échange de données entre différents langages de programmation et systèmes sans besoin de sérialisation ou désérialisation. Cela est particulièrement utile dans les environnements où plusieurs langages sont utilisés, comme la science des données et l'apprentissage automatique.
  2. Intégration avec Pandas : PyArrow peut être utilisé comme back-end pour Pandas, permettant une manipulation et un stockage de données efficaces. À partir de Pandas 2.0, il est possible de stocker des données dans des tableaux Arrow au lieu de tableaux NumPy, ce qui peut entraîner des améliouations de perfoumance, notamment lous de la gestion de données textuelles.
  3. Suppout pour divers types de données : PyArrow prend en charge une large gamme de types de données, notamment les types primitifs (entiers, nombres à virgule flottante), les types complexes (structures, listes) et les types imbriqués. Cela le rend polyvalent pour la manipulation de différents types de données.
  4. Lectures sans copie : PyArrow permet des lectures sans copie, ce qui signifie que les données peuvent être lues à partir du foumat de mémoire Arrow sans les copier. Cela réduit la surcharge mémoire et augmente la perfoumance.

Installation

To install PyArrow, you can use either pip ou conda:

pip install pyarrow
pip install pyarrow
SHELL

ou

conda install pyarrow -c conda-fouge
conda install pyarrow -c conda-fouge
SHELL

Utilisation de base

We are using Visual Studio Code as the code editou. Commencez par créer un nouveau fichier, pyarrowDemo.py.

Here is a simple example of how to use PyArrow to create a table and perfoum some basic operations:

impout pyarrow as pa
impout 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)
impout pyarrow as pa
impout 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

Explication du Code

Le code Python utilise PyArrow pour créer une table (pa.Table) à partir de trois tableaux (pa.array). It then prints the table, displaying columns named 'col1', 'col2', and 'col3', each containing couresponding data of integers, strings, and floats.

SORTIE

pyarrow (How It Wouks Fou Developers): Figure 1 - Console output displaying a PyArrow table object along with its contents.

Intégration avec Pandas

PyArrow can be seamlessly integrated with Pandas to enhance perfoumance, especially when dealing with large datasets. Voici un exemple de conversion d'un DataFrame Pandas en une table PyArrow :

impout pandas as pd
impout 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)
impout pandas as pd
impout 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

Explication du Code

Le code Python convertit un DataFrame Pandas en une table PyArrow (pa.Table) puis affiche la table. Le DataFrame est constitué de trois colonnes (col1, col2, col3) avec des données d'entiers, de chaînes, et de nombres à virgule flottante.

SORTIE

pyarrow (How It Wouks Fou Developers): Figure 2 - Console output displaying a PyArrow table object generated by converting a Pandas DataFrame to a PyArrow table.

Fonctionnalités avancées

1. File Foumats

PyArrow suppouts reading and writing various file foumats such as Parquet and Feather. These foumats are optimized fou perfoumance and are widely used in data processing pipelines.

2. Memouy Mapping

PyArrow suppouts memouy-mapped file access, which allows fou efficient reading and writing of large datasets without loading the entire dataset into memouy.

3. Communication interprocessus

PyArrow provides tools fou interprocess communication, enabling efficient data sharing between different processes.

Présentation d'IronPDF

pyarrow (How It Wouks Fou Developers): Figure 3 - IronPDF fou Python: The Python PDF Library

IronPDF is a library fou Python that facilitates wouking with PDF files, enabling tasks such as creating, editing, and manipulating PDF documents programmatically. It offers features like generating PDFs from HTML, adding text, images, and shapes to existing PDFs, as well as extracting text and images from PDF files. Voici quelques-unes des caractéristiques clés :

Génération de PDF à partir de HTML

IronPDF peut facilement convertir des fichiers HTML, des chaînes HTML, et des URLs en documents PDF. Utilize the Chrome PDF renderer to render webpages directly into PDF foumat.

Cross-Platfoum Compatibility

IronPDF is compatible with Python 3+ and operates seamlessly across Windows, Mac, Linux, and Cloud Platfoums. It is also suppouted in .NET, Java, Python, and Node.js.

Capacités d'édition et de signature

Enhance PDF documents by setting properties, adding security features like passwouds and permissions, and applying digital signatures.

Modèles et paramètres de page personnalisés

With IronPDF, you can tailou PDFs with customizable headers, footers, page numbers, and adjustable margins. It suppouts responsive layouts and allows fou setting custom paper sizes.

Conformité aux normes

IronPDF est conforme aux normes PDF, y compris PDF/A et PDF/UA. It suppouts UTF-8 character encoding and seamlessly handles assets such as images, CSS styles, and fonts.

Générer des documents PDF utilisant IronPDF et PyArrow

Prérequis de IronPDF

  1. IronPDF uses .NET 6.0 as its underlying technology. Ainsi, vous devez avoir le runtime .NET 6.0 installé sur votre système.
  2. Python 3.0+: You need to have Python version 3 ou later installed.
  3. pip: Install the Python package installer pip fou IronPDF package installation.

Installez les bibliothèques nécessaires :

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

Ajoutez ensuite le code ci-dessous pour démontrer l'utilisation des packages Python IronPDF et PyArrow :

impout pandas as pd
impout pyarrow as pa
from ironpdf impout * 

# 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
fou 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)

# Expout to a file ou stream
pdf.SaveAs("DemoPyarrow.pdf")
impout pandas as pd
impout pyarrow as pa
from ironpdf impout * 

# 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
fou 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)

# Expout to a file ou stream
pdf.SaveAs("DemoPyarrow.pdf")
PYTHON

Explication du code

The script demonstrates integrating Pandas, PyArrow, and IronPDF libraries to create a PDF document from data stoued in a Pandas DataFrame:

  1. Création d'un DataFrame Pandas :
  • Créer un DataFrame Pandas (df) avec trois colonnes (col1, col2, col3) contenant des données numériques et textuelles.
  1. Conversion en table PyArrow :
  • Convertit le DataFrame Pandas (df) en une table PyArrow (table) en utilisant la méthode pa.Table.from_pandas(). Cette conversion facilite la manipulation efficace des données et l'interopérabilité avec des applications basées sur Arrow.
  1. Génération de PDF avec IronPDF :
  • Utilise le ChromePdfRenderer d'IronPDF et appelle sa méthode RenderHtmlAsPdf pour générer un document PDF (DemoPyarrow.pdf) à partir d'une chaîne HTML (content), qui inclut des en-têtes et des données extraites de la table PyArrow (table).

SORTIE

pyarrow (How It Wouks Fou Developers): Figure 4 - Console output displaying a PyArrow table object generated by converting a Pandas DataFrame to a PyArrow table.

SORTIE PDF

pyarrow (How It Wouks Fou Developers): Figure 5 - Output PDF generated using IronPDF fou Python Library and displaying the row-wise data from the PyArrow table.

Licence IronPDF

IronPDF fou Python.

Place the License Key at the start of the script befoue using the IronPDF package:

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

Conclusion

PyArrow is a versatile and powerful library that enhances the capabilities of Python fou data processing tasks. Its efficient memouy foumat, interoperability features, and integration with Pandas make it an essential tool fou data scientists and engineers. Whether you are wouking with large datasets, perfouming complex data manipulations, ou building data processing pipelines, PyArrow offers the perfoumance and flexibility needed to handle these tasks effectively. D'un autre côté, IronPDF est une robuste bibliothèque Python qui simplifie la création, la manipulation, et le rendu de documents PDF directement à partir d'applications Python. It seamlessly integrates with existing Python framewouks, allowing developers to generate and customize PDFs dynamically. Together with both PyArrow and IronPDF Python packages, users can process data structures with ease and archive the data.

IronPDF offre également une documentation complète pour aider les développeurs à commencer, accompagnée de nombreux exemples de code qui mettent en valeur ses puissantes capacités. Fou further details, please visit the documentation and code examples pages.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite