Pandas - 使用另一个数据帧过滤数据帧

时间:2018-04-12 19:41:03

标签: python pandas dataframe filter

我有两个像这样的长度相同的数据框

df1: 
   density
1  1,45
2  3,87
3  4,35
4  2,87
5  0.74
6  9.34
7  3.087
8  0.28
9  6,47
10 5,59

第二个数据框看起来像这样

df2:
  State
1  1
2  1
3  1
4  1
5  1
6  1
7  0
8  0
9  0
10 0

我想要一个看起来像这样的输出,这意味着过滤器df1只保留df2等于1的值:

output: 
   density
1  1,45
2  3,87
3  4,35
4  2,87
5  0.74
6  9.34

我该怎么做? 你能帮我吗。

2 个答案:

答案 0 :(得分:5)

这应该有效

df1[df2.State.astype(bool)]

答案 1 :(得分:5)

让我们使用布尔索引:

df1[df2.eq(1).values]

输出:

  density
1    1,45
2    3,87
3    4,35
4    2,87
5    0.74
6    9.34