소개
이 랩에서는 Cython, Numba, 그리고 pandas.eval() 을 사용하여 pandas DataFrame 의 연산을 가속화하는 다양한 기술을 안내합니다. 이러한 기술은 대규모 데이터셋 작업 시 상당한 속도 향상을 제공할 수 있습니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위한 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 연산의 유효성 검사는 자동화될 수 없습니다.
학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 즉시 문제를 해결해 드리겠습니다.
설정 및 샘플 데이터 생성
시작하기 전에, 필요한 모듈을 import 하고 샘플 DataFrame 을 생성해 보겠습니다.
## 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
순수 Python 함수 구현
DataFrame 의 행별로 작동하는 순수 Python 함수를 생성하는 것으로 시작합니다.
## 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
요약
축하합니다! Pandas 연산 속도 향상 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.