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