Python 数据帧-选择符合多种条件之一的行

Python 数据帧-选择符合多种条件之一的行,python,pandas,dataframe,Python,Pandas,Dataframe,我想选择dataframe的一部分,其中一个特定列中的值是多个值中的一个 我现在做的是 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)] 使用: 例如: In [579]: df = pd.DataFrame({'a': [0, 1,

我想选择dataframe的一部分,其中一个特定列中的值是多个值中的一个

我现在做的是

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)]
使用:

例如:

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
另一种方法是:


谢谢在我接受你的回答之前,如果len(selected_items)=1,即我只有一个项目可以匹配,情况如何?@BaronYugovich对于单个匹配,你可以使用
new_-df=my_-df[my_-df['Column']==some_-val]
如果你的列表中包含单个项目
isin
,则仍然有效
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
In [582]:

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