Pandas DataFrame - 选择与许多条件之一匹配的行

时间:2015-04-24 14:28:28

标签: python pandas dataframe

我想选择数据帧的一部分,其中一个特定列中的值是多个值中的一个。

我现在所做的是

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

有没有更好的方法来实现这一目标?

2 个答案:

答案 0 :(得分:2)

这应该有用吗?

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

答案 1 :(得分:1)

使用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