Mejora Pandas con PyArrow

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta práctica te guiará a través del proceso de utilizar PyArrow en pandas para extender la funcionalidad y mejorar el rendimiento de varias API. PyArrow mejora pandas con tipos de datos más extensos, soporte para datos faltantes en todos los tipos de datos, integración de lectores de E/S y interoperabilidad con otras bibliotecas de marcos de datos.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tengas que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no puede automatizarse debido a las limitaciones de Jupyter Notebook.

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Ofrece retroalimentación después de la sesión y resolveremos el problema para ti de inmediato.

Instalación de PyArrow

Antes de comenzar, asegúrate de haber instalado la versión mínima de PyArrow admitida. Puedes hacer esto ejecutando el siguiente comando en tu entorno de Python:

## Este es un comentario
## Utiliza pip para instalar PyArrow
pip install pyarrow

Integración de Estructuras de Datos

PyArrow permite que las estructuras de datos de pandas estén directamente respaldadas por un PyArrow ChunkedArray, similar a una matriz de NumPy. Aquí está cómo hacerlo:

## Importa pandas
import pandas as pd

## Crea una Serie, un Índice y un DataFrame de pandas con un tipo de datos de PyArrow
ser = pd.Series([-1.5, 0.2, None], dtype="float32[pyarrow]")
idx = pd.Index([True, None], dtype="bool[pyarrow]")
df = pd.DataFrame([[1, 2], [3, 4]], dtype="uint64[pyarrow]")

Usando Tipos de PyArrow con Parámetros

Para los tipos de PyArrow que aceptan parámetros, puedes pasar un tipo de PyArrow con esos parámetros a ArrowDtype para usarlo en el parámetro dtype.

## Importa PyArrow
import pyarrow as pa

## Crea una Serie de pandas con un tipo de lista de PyArrow
list_str_type = pa.list_(pa.string())
ser = pd.Series([["hello"], ["there"]], dtype=pd.ArrowDtype(list_str_type))

Convertir una Matriz de PyArrow a Estructuras de Datos de pandas

Si tienes una Matriz de PyArrow o una ChunkedArray de PyArrow, puedes convertirla en estructuras de datos de pandas como Series, Índice o DataFrame.

## Crea una matriz de PyArrow
pa_array = pa.array([{"1": "2"}, {"10": "20"}, None], type=pa.map_(pa.string(), pa.string()))

## Convierte la matriz de PyArrow en una Serie de pandas
ser = pd.Series(pd.arrays.ArrowExtensionArray(pa_array))

Operaciones con PyArrow

La integración de la estructura de datos de PyArrow se implementa a través de la interfaz ExtensionArray de pandas. La funcionalidad admitida existe donde esta interfaz está integrada en la API de pandas.

## Crea una Serie de pandas con un tipo de datos de PyArrow
ser = pd.Series([-1.545, 0.2, None], dtype="float32[pyarrow]")

## Realiza diversas operaciones
ser.mean()
ser + ser
ser > (ser + 1)
ser.dropna()
ser.isna()
ser.fillna(0)

Leyendo Datos con PyArrow

PyArrow proporciona funcionalidad de lectura de E/S que se ha integrado en varios lectores de E/S de pandas.

## Importa el módulo de E/S
import io

## Crea un objeto StringIO
data = io.StringIO("""a,b,c\n1,2.5,True\n3,4.5,False""")

## Lee los datos en un DataFrame de pandas utilizando PyArrow como motor
df = pd.read_csv(data, engine="pyarrow")

Resumen

En este laboratorio, exploramos cómo se puede utilizar PyArrow con pandas para extender su funcionalidad y mejorar el rendimiento. Aprendimos cómo convertir las estructuras de datos de pandas en tipos de datos de PyArrow y realizar diversas operaciones. También vimos cómo leer datos utilizando la funcionalidad de lectura de E/S de PyArrow.