아미(아름다운미소)

df a,b,c컬럼을 groupby 하고 df의 d컬럼의 최빈값을 취하고 동률일경우 min값을 가져옴 본문

랭귀지/pandas

df a,b,c컬럼을 groupby 하고 df의 d컬럼의 최빈값을 취하고 동률일경우 min값을 가져옴

유키공 2025. 8. 1. 14:13
import pandas as pd

# 예시 데이터프레임 생성 (실제 사용시에는 주석 처리)
data = {
    'a': [1, 1, 1, 2, 2, 2],
    'b': ['x', 'x', 'y', 'y', 'y', 'y'],
    'c': [10, 10, 20, 20, 20, 30],
    'd': [100, 100, 200, 300, 300, 400]
}
df = pd.DataFrame(data)

# 그룹별로 d 컬럼의 최빈값 계산 (동률일 경우 최소값 선택)
result = df.groupby(['a', 'b', 'c'])['d'].agg(
    lambda x: x.mode().min() if not x.mode().empty else None
).reset_index()

print(result)
Comments