랭귀지/pandas
pandas 컬럼값변경
유키공
2024. 7. 20. 10:33
import pandas as pd
# df1 생성
df1 = pd.DataFrame({
'a': [1, 2, 3, 1, 2, 3, 4],
'b': [10, 20, 30, 40, 50, 60, 70],
'c': [100, 200, 300, 400, 500, 600, 700],
'd': [1000, 2000, 3000, 4000, 5000, 6000, 7000]
})
# 수정된 df2 생성 (a-1을 키로 사용)
df2 = pd.DataFrame({
'a-1': [1, 2, 3],
'b': [15, 25, 35] # 각 a에 해당하는 b 값
})
# Left Outer Join 수행 (a와 a-1을 키로 사용)
left_outer_join_df = pd.merge(df1, df2, left_on='a', right_on='a-1', how='left', suffixes=('', '_left'))
# print(left_outer_join_df)
# b 컬럼 업데이트
# left_outer_join_df['b'] = left_outer_join_df['b_left'].combine_first(left_outer_join_df['b'])
left_outer_join_df['b'] = left_outer_join_df['b_left'].fillna(left_outer_join_df['b'])
# print(left_outer_join_df)
# 불필요한 b_new 및 a-1 컬럼 제거
left_outer_join_df = left_outer_join_df.drop(columns=['b_left', 'a-1'])
# 결과 출력
print(left_outer_join_df)
a b c d
0 1 15.0 100 1000
1 2 25.0 200 2000
2 3 35.0 300 3000
3 1 15.0 400 4000
4 2 25.0 500 5000
5 3 35.0 600 6000
6 4 70.0 700 7000