아미(아름다운미소)

계산 후 join 본문

랭귀지/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)
Comments