我正在尝试合并2个熊猫数据框。它们看起来像
DF1
col1 col2 col3 col4 col5
A SAT MON 5 3
B MON FRI -1 2
C FRI TUE 8 4
D TUE WED 2 4
DF2
col1 col2 col3 col4 col5
A SAT MON 5 3
B MON FRI -1 2
C WED THUR 8 4
D THUR SAT 2 4
想要的结果
col1 col2 col3 col4 col5 col1_2 col2_2 col3_2 col4_2 col5_2
A SAT MON 5 3 A SAT MON 5 3
B MON FRI -1 2 B MON FRI -1 2
C FRI TUE 8 4
D TUE WED 2 4
C WED THUR 8 4
D THUR SAT 2 4
我使用了merged_df = df1.merge(df2, on=['col1','col2','col3'], how='outer')
,但是它给了我以下期望的结果,但是我不想要。我想要类似上面的结果。反正有得到我期望的结果吗?
结果
col1 col2 col3 col4 col5
A SAT MON 5 3
B MON FRI -1 2
C FRI TUE 8 4
D TUE WED 2 4
C WED THUR 8 4
D THUR SAT 2 4
答案 0 :(得分:1)
尝试使用combine_first
l=['col1','col2','col3']
df = df1.set_index(l).combine_first(df2.set_index(l)).reset_index()
df
Out[28]:
col1 col2 col3 col4 col5
0 A SAT MON 5.0 3.0
1 B MON FRI -1.0 2.0
2 C FRI TUE 8.0 4.0
3 C WED THUR 8.0 4.0
4 D THUR SAT 2.0 4.0
5 D TUE WED 2.0 4.0