在pandas中进行过滤条件的连接

时间:2016-11-06 00:13:51

标签: python pandas

如果我有两个数据帧,如:

df1:
   | a | b |
 0 | 0 | 0 | 
 1 | 0 | 1 |
 2 | 1 | 1 |


df2:
   | c | d |
 0 | 0 | 1 |
 1 | 1 | 1 |
 2 | 2 | 1 |

如何从df2 df1[df2['c']]['b'] != 0中选择行。换句话说,来自df2的行column c中的值是用于检查df1 column b中的值的索引,不等于0。

另一种看待它的方式。我从df2中选择column c所有列df1的外键,并且我不希望column b中的值等于0。

1 个答案:

答案 0 :(得分:1)

我认为这应该可以解决问题。如果您需要其他东西,请告诉我。

df1['index1'] = df1.index
df = pandas.merge(df1, df2, how='left', left_on=['index1'], right_on=['c'])
df = df[df.b != 0]