아미(아름다운미소)

pandas a,b,c,d 컬럼으로 groupby 했을때 e컬럼의 Mode룰 취해 mode컬럼생성 본문

랭귀지/pandas

pandas a,b,c,d 컬럼으로 groupby 했을때 e컬럼의 Mode룰 취해 mode컬럼생성

유키공 2024. 8. 6. 09:03
import pandas as pd

# 예시 데이터프레임 생성
data = {
    'a': ['foo', 'foo', 'bar', 'bar', 'foo', 'bar'],
    'b': ['one', 'one', 'two', 'two', 'one', 'two'],
    'c': ['small', 'small', 'large', 'large', 'small', 'large'],
    'd': [1, 1, 2, 2, 1, 2],
    'e': [10, 10, 20, 20, 10, 30]
}

df = pd.DataFrame(data)

# 그룹화 후 e 컬럼의 최빈값 계산
mode_df = df.groupby(['a', 'b', 'c', 'd'])['e'].agg(lambda x: x.mode()[0]).reset_index()

# mode 컬럼 추가
mode_df.rename(columns={'e': 'mode'}, inplace=True)

# 원본 데이터프레임에 mode 컬럼 추가
result_df = pd.merge(df, mode_df, on=['a', 'b', 'c', 'd'], how='left')

print(result_df)
Comments