Introdução
Este laboratório guia você através de várias técnicas para acelerar operações em DataFrames pandas usando Cython, Numba e pandas.eval(). Essas técnicas podem fornecer melhorias significativas na velocidade ao trabalhar com grandes conjuntos de dados.
Dicas da VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Configuração e Criação de Dados de Amostra
Antes de começarmos, vamos importar os módulos necessários e criar um DataFrame de amostra.
## Importar módulos necessários
import pandas as pd
import numpy as np
## Criar um DataFrame de amostra
df = pd.DataFrame(
{
"a": np.random.randn(1000),
"b": np.random.randn(1000),
"N": np.random.randint(100, 1000, (1000)),
"x": "x",
}
)
df
Implementando Função em Python Puro
Começaremos criando uma função em Python puro que opera linha a linha no DataFrame.
## Definir uma função
def f(x):
return x * (x - 1)
## Definir outra função que usa a primeira função
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
Resumo
Parabéns! Você concluiu o laboratório "Speed Up Pandas Operations". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.