如何连接两个具有相同列的 Pandas 数据框,但前提是两个数据框中一列的值相同?

Dr.*_*ata 1 python concatenation dataframe pandas

我有两个如下所示的数据框:

DF1:

第 1 列 列2
22 是的
22
24 是的
22
27

DF2:

第 1 列 列2
28 是的
22
29 是的
22 是的
27 是的

我想连接两个数据帧,这样我就会得到下面的结果。我不想加入 col1 上的数据帧,因为这会使列数加倍。我只想垂直组合数据框(如果它们在“col1”上共享共同值)。对此有什么帮助吗?

DF3:

第 1 列 列2
22 是的
22
22
22
22 是的
27
27 是的

Shu*_*rma 5

让我们首先使用集合交集找到公共值,然后连接所需的行df1,并且df2可以选择对值进行排序

i = set(df1['col1']) & set(df2['col1'])
pd.concat([df1[df1['col1'].isin(i)], df2[df2['col1'].isin(i)]]).sort_values('col1')
Run Code Online (Sandbox Code Playgroud)
   col1 col2
0    22  yes
1    22   no
3    22   no
1    22   no
3    22  yes
4    27   no
4    27  yes
Run Code Online (Sandbox Code Playgroud)