基于Python Pandas将两个数据框按行值合并

3

我在pandas中有两个数据框,如下所示:

df1:                                 df2:

      Column1  Column2  Column3           ColumnA  ColumnB ColumnC
    0    a        x        x            0    c        y       y
    1    c        x        x            1    e        z       z
    2    e        x        x            2    a        s       s
    3    d        x        x            3    d        f       f

我现在想做的是将Column1与ColumnA进行比较,并将df2的行附加到df1的行上,只有当df2在Column A中具有与Column1相同的值时才能这样做,以便结果看起来像这样:

df1:
    Column1  Column2  Column3  ColumnB  ColumnC
  0    a        x        x        s        s
  1    c        x        x        y        y
  2    e        x        x        z        z
  3    d        x        x        f        f

我在考虑使用pandas的.groupby()函数,将列1和A设置为键,比较它们,然后合并键相同的分组对象,但我找不到一种有效的方法来比较2个数据框的分组对象的键。有没有人有好的想法如何做到这一点?


你是否要使用 df1.merge(df2,left_on='Column1', right_on='ColumnA') - EdChum
运行成功了,谢谢!没想到这么简单... - sequence_hard
1个回答

5
您可以指定左右两个数据框要进行合并的列:

merge

In [159]:
df1.merge(df2, left_on='Column1', right_on='ColumnA')

Out[159]:
  Column1 Column2 Column3 ColumnA ColumnB ColumnC
0       a       x       x       a       s       s
1       c       x       x       c       y       y
2       e       x       x       e       z       z
3       d       x       x       d       f       f

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接