아미(아름다운미소)

pandas outer join 이름변경후 두열차감 본문

랭귀지/python

pandas outer join 이름변경후 두열차감

유키공 2024. 6. 9. 10:17
import pandas as pd

# 샘플 데이터 생성
data_left = {
    'key1_left': ['A', 'B', 'C'],
    'key2_left': ['X', 'Y', 'Z'],
    'value1': [1, 2, 3],
    'value2': [4, 5, 6]
}

data_right = {
    'key1_right': ['A', 'B', 'D'],
    'key2_right': ['X', 'Y', 'W'],
    'value1_right': [7, 8, 9],
    'value2_right': [10, 11, 12]
}

df_left = pd.DataFrame(data_left)
df_right = pd.DataFrame(data_right)

# 여러 개의 다른 키 이름을 가진 데이터프레임 병합
merged_df = pd.merge(df_left, df_right, 
                     left_on=['key1_left', 'key2_left'], 
                     right_on=['key1_right', 'key2_right'], 
                     how='left', 
                     suffixes=('_left', '_right'))

# 중복되는 컬럼들('value1', 'value2')에 대한 차이 계산
for col in ['value1', 'value2']:
    left_col = f'{col}_left'
    right_col = f'{col}_right'
    if left_col in merged_df and right_col in merged_df:
        merged_df[f'{col}_diff'] = merged_df[left_col] - merged_df[right_col].fillna(0)

# 결과 출력
print(merged_df)
Comments