랭귀지/pandas
계산 후 join
유키공
2024. 8. 12. 15:35
import pandas as pd
# 예제 데이터 생성
data = {
'a': ['A', 'A', 'B', 'B', 'C', 'C'],
'b': [1, 1, 2, 2, 3, 3],
'c': [10, 10, 20, 20, 30, 30],
'd': [100, 100, 200, 200, 300, 300],
'e': [5, 10, 15, 20, 25, 30],
'f': [30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)
# a, b, c, d로 그룹화하고 e의 합계 계산
grouped = df.groupby(['a', 'b', 'c', 'd'])['e'].sum().reset_index()
# f - e 계산
grouped['f - e'] = df.groupby(['a', 'b', 'c', 'd'])['f'].sum().values - grouped['e']
# 몫과 나머지 계산
grouped['count'] = df.groupby(['a', 'b', 'c', 'd']).size().values
grouped['quotient'] = grouped['f - e'] // grouped['count']
grouped['remainder'] = grouped['f - e'] % grouped['count']
# Left Join 수행
merged_df = pd.merge(df, grouped, on=['a', 'b', 'c', 'd'], how='left')
# 결과 확인
print(merged_df)