合并某些重叠列上的两个数据帧,同时保留不重叠的列

2024-10-03 02:44:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有两个数据帧:

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的值附加到合并的dataframe上。所以理想的输出是:

^{pr2}$

当我尝试合并时,我在合并的数据帧上得到col5和col6返回的NaN值。有什么想法吗?在

谢谢


Tags: 数据treeapplecol2col3col1bananadf1
3条回答

你需要

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

下面是一个有多个连接键的更复杂的示例。由于默认情况下how='inner',因此只有出现在左和右的关键点(交叉点)存在。在

来自熊猫的文件:

result = pd.merge(left, right, on=['key1', 'key2'])

result = pd.merge(def1, df2, on=['col1','col2','col3','col4'])

你想要一个内部合并。默认情况下,公共列将用于合并:

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

相关问题 更多 >