列表布尔值中的数据帧



我可以使用布尔索引选择一个子集,如下所示:

df.loc[df['my column'] == 1]

我想做的是用列表替换== 1[1, 2] .

像这样:

df.loc[df['my column'] in [1,2]]

这相当于长 OR 语句。

如何与熊猫很好地做到这一点?

(替代的,非布尔答案也很好)。

使用 isin 测试值列表中的成员身份:

df.loc[df['my column'].isin([1,2])]

例:

In [18]:
df = pd.DataFrame({'a':np.random.randn(5), 'b':np.arange(5)})
df
Out[18]:
          a  b
0 -0.118930  0
1 -0.129362  1
2  0.822227  2
3  1.781672  3
4 -0.127322  4
In [19]:
df.loc[df['b'].isin([2,4])]
Out[19]:
          a  b
2  0.822227  2
4 -0.127322  4

最新更新