Skip to main content
Pandas 연산은 벡터화, 정렬 기준, 결측치 처리 순서를 명확히 잡으면 재현성과 성능이 함께 올라갑니다.

열 단위 벡터화 연산

df["discount_amount"] = df["amount"] * 0.1
df["net_amount"] = df["amount"] - df["discount_amount"]
반복문 대신 열 단위 연산을 우선 사용하면 속도와 가독성이 모두 좋아집니다.

조건 기반 파생 컬럼

import numpy as np

conds = [
    df["amount"] >= 15000,
    df["amount"].between(10000, 14999),
]
choices = ["high", "mid"]
df["tier"] = np.select(conds, choices, default="low")

정렬과 상위 추출

# 단일 컬럼 정렬
ranked = df.sort_values("amount", ascending=False)

# 다중 기준 정렬
ranked2 = df.sort_values(["region", "amount"], ascending=[True, False])

# 그룹별 상위 2개
out = (
    df.sort_values(["region", "amount"], ascending=[True, False])
      .groupby("region")
      .head(2)
)

브로드캐스팅 정규화

mean = df["amount"].mean()
std = df["amount"].std()
df["amount_z"] = (df["amount"] - mean) / std

apply 사용 기준

apply는 표현력이 높지만 성능 비용이 큽니다. 다음 순서로 검토하면 불필요한 apply를 줄일 수 있습니다.
  1. 벡터화 연산으로 대체 가능한지 확인
  2. map/replace/where로 해결 가능한지 확인
  3. 그다음에 apply 사용

이어서 볼 문서