[python] Pandas의 성능 향상을 위한 팁과 최적화 기법

Pandas는 데이터 조작과 분석을 위한 강력한 도구로 널리 사용되고 있지만, 매우 큰 데이터셋을 다룰 때 성능이 느릴 수 있다는 단점이 있습니다. 이에 대해 성능을 향상시키기 위한 팁과 최적화 기법을 알아보겠습니다.

목차

  1. 메모리 사용량 최적화
  2. 벡터화된 연산 활용
  3. 인덱싱 최적화
  4. 병렬 처리
  5. 참고 자료

메모리 사용량 최적화

Pandas에서 메모리 사용량을 최적화하는 방법은 다양한데, 여기서는 다음과 같은 방법을 알아보겠습니다.

# 데이터 형식 최적화
df['col1'] = df['col1'].astype('int32')

# 카테고리 데이터 활용
df['category_col'] = df['category_col'].astype('category')

벡터화된 연산 활용

Pandas는 벡터화된 연산을 지원하여 반복문을 사용하지 않고 전체 데이터에 대한 연산을 한 번에 처리할 수 있습니다. 이를 활용하여 연산 속도를 향상시킬 수 있습니다.

# 벡터화된 연산
df['new_col'] = df['col1'] + df['col2']

인덱싱 최적화

적절한 인덱싱을 활용하여 데이터프레임의 접근 및 조작 속도를 향상시킬 수 있습니다. 인덱싱에 대한 최적화는 다수의 연산에 영향을 미칠 수 있습니다.

# 인덱싱 최적화
df.loc[df['col1'] > 5, 'new_col'] = 10

병렬 처리

Pandas의 연산을 병렬 처리하여 CPU 코어를 최대한 활용할 수 있습니다. 이를 위해 swifter, dask 등의 라이브러리를 활용할 수 있습니다.

# swifter 라이브러리 활용
import swifter
df['new_col'] = df['col'].swifter.apply(my_function)

참고 자료

Pandas의 성능 향상을 위해 메모리 사용량 최적화, 벡터화된 연산, 인덱싱 최적화, 그리고 병렬 처리를 활용하는 방법을 알아보았습니다. 이러한 기법을 적절히 활용하면 대규모 데이터셋에 대한 작업을 효율적으로 수행할 수 있습니다.