我目前有两个数据框:
df1:
col1 col2 col3 col4
0 Apple store1 1 3
1 Tree store2 1 3
2 Banana store3 2 4
3 Card store4 2 4 ...
df2:
col1 col2 col3 col4 col5 col6
0 Apple store1 1 3 123 50
1 Tree store2 1 3 451 32
2 Mango store2 2 4 313 15
3 Guava store5 2 4 113 9
我想做的是,如果前4列中的值相同,则将df1和df2合并在一起,但是我想将col5和col6的值附加到合并的数据帧上。因此理想的输出为:
merged_df:
col1 col2 col3 col4 col5 col6
0 Apple store1 1 3 123 50
1 Tree store2 1 3 451 32 ...
当我尝试合并时,我在合并的数据帧上的col5和col6上返回了NaN值。有什么想法吗?
谢谢
答案 0 :(得分:1)
您想要一个内部合并。默认情况下,将使用公共列进行合并:
res = df1.merge(df2, how='inner')
print(res)
col1 col2 col3 col4 col5 col6
0 Apple store1 1 3 123 50
1 Tree store2 1 3 451 32
答案 1 :(得分:0)
您需要,
pd.merge(df1,df2,on=['col1','col2','col3','col4'])
[out]
#col1 col2 col3 col4 col5 col6
#Apple store1 1 3 123 50
#Tree store2 1 3 451 32
答案 2 :(得分:0)
这是一个具有多个联接键的更复杂的示例。因为默认情况下how ='inner',所以只显示左右键(相交)。
从熊猫文档开始:
result = pd.merge(left,right,on = ['key1','key2'])
result = pd.merge(def1, df2, on=['col1','col2','col3','col4'])