Acelerar las Operaciones de Pandas

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 guía a través de varias técnicas para acelerar las operaciones en un DataFrame de pandas utilizando Cython, Numba y pandas.eval(). Estas técnicas pueden proporcionar mejoras significativas en velocidad al trabajar con grandes conjuntos 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 las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

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

Configuración y creación de datos de muestra

Antes de comenzar, importemos los módulos necesarios y creemos un DataFrame de muestra.

## Import necessary modules
import pandas as pd
import numpy as np

## Create a sample DataFrame
df = pd.DataFrame(
    {
        "a": np.random.randn(1000),
        "b": np.random.randn(1000),
        "N": np.random.randint(100, 1000, (1000)),
        "x": "x",
    }
)
df

Implementando una función pura de Python

Comenzaremos creando una función en puro Python que opere fila por fila en el DataFrame.

## Define a function
def f(x):
    return x * (x - 1)

## Define another function that uses the first function
def integrate_f(a, b, N):
       s = 0
       dx = (b - a) / N
       for i in range(N):
           s += f(a + i * dx)
       return s * dx

Resumen

¡Felicidades! Has completado el laboratorio de Aceleración de Operaciones con Pandas. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.