Pandas DataFrame - select 符合多个条件之一的行

Pandas DataFrame - select rows that match one of many conditions

我想要 select 数据框的一部分,其中一个特定列中的值是多个值之一。

我现在做的是

idx = my_df['Column'].apply(lambda z: z in selected_items)
new_df = my_df[idx]

有没有更好的方法来实现这个?

这应该有用吗?

new_df = my_df[my_df['Column'].isin(selected_items)]

使用isin:

new_df = my_df[idx].isin(selected_items)

示例:

In [579]:

df = pd.DataFrame({'a': [0, 1, 2, 3, 4, 5, 6, 7]})
​
df
Out[579]:
   a
0  0
1  1
2  2
3  3
4  4
5  5
6  6
7  7
In [581]:

df[df['a'].isin([3,5,6])]
Out[581]:
   a
3  3
5  5
6  6

另一种方法是query:

In [582]:

df.query('a in [3,5,6]')
Out[582]:
   a
3  3
5  5
6  6