Pandas:按公共列合并,保留所有其他列并按公共列排序

问题描述 投票:0回答:1

我有两个数据帧,其中一列在每个数据帧中具有唯一值,但在两个数据帧中相同(某些值匹配),我想合并与列上的值匹配的两个数据帧(x 必须与 y 列匹配) )

df1 = pd.DataFrame({'x': ['1', '2', '3', '4', '5', '6'],
                    'y': ['A', 'B', 'C', 'D', 'E', 'F']})

df2 = pd.DataFrame({'x': ['3', '4', '10', '2', '12', '6', '8', '9'],
                    'y': ['A', 'G', 'H', 'E', 'F', 'J', 'L', 'B']})

   x  y
0  1  A
1  2  B
2  3  C
3  4  D
4  5  E
5  6  F


    x  y
0   3  A
1   4  G
2  10  H
3   2  E
4  12  F
5   6  J
6   8  L
7   9  B

我想要的结果是:

   x y_1 y_2
0  3   A   C
1  4   G   D
2  2   E   B
3  6   J   F
python pandas dataframe join merge
1个回答
0
投票

你可以用

pd.merge

来做到
pd.merge(df2, df1, on='x', how='inner', suffixes=('_1', '_2'))
© www.soinside.com 2019 - 2024. All rights reserved.