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
我想要 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