熊猫:如何将df与条件合并

时间:2016-07-11 06:31:29

标签: python pandas

我有df

number   A    B    C
123      10   10   1
123      10   11   1
123      18   27   1
456      10   18   2
456      42   34   2
789      13   71   3
789      19   108  3
789      234  560  4

和第二个df

number    A    B
123       18   27
456       32   19
789       234  560

我需要,如果number, A, B在第二个df中等于此列,则将其添加到新的df中,并且添加C的字符串是相等的字符串,我们之前添加。 欲望输出

number   A   B   C
  123    10  10  1
  123    10  11  1
  123    18  27  1
  789    234 560 4

我怎么写这个条件?

1 个答案:

答案 0 :(得分:4)

一种方法是给df2一个虚拟列:

robots.txt

然后你可以进行合并:

In [11]: df2["in_df2"] = True

现在,我们只想要那些包含True的组:

In [12]: df1.merge(df2, how="left")
Out[12]:
   number    A    B  C in_df2
0     123   10   10  1    NaN
1     123   10   11  1    NaN
2     123   18   27  1   True
3     456   10   18  2    NaN
4     456   42   34  2    NaN
5     789   13   71  3    NaN
6     789   19  108  3    NaN
7     789  234  560  4   True
相关问题