Python 数据帧-选择符合多种条件之一的行
我想选择dataframe的一部分,其中一个特定列中的值是多个值中的一个 我现在做的是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,
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