python pandas loc - 过滤值列表
python pandas loc - filter for list of values
这应该非常简单,但我无法让它工作。
我想根据两个或多个值过滤我的数据集。
#this works, when I filter for one value
df.loc[df['channel'] == 'sale']
#if I have to filter, two separate columns, I can do this
df.loc[(df['channel'] == 'sale')&(df['type']=='A')]
#but what if I want to filter one column by more than one value?
df.loc[df['channel'] == ('sale','fullprice')]
这必须是 OR 语句吗?我可以使用 in?
在 SQL 中做类似的事情
有一个 df.isin(values)
方法可以测试
DataFrame
中的每个元素是否包含在 values
中。
因此,正如@MaxU 在评论中所写,您可以使用
df.loc[df['channel'].isin(['sale','fullprice'])]
用多个值过滤一列。
这应该非常简单,但我无法让它工作。
我想根据两个或多个值过滤我的数据集。
#this works, when I filter for one value
df.loc[df['channel'] == 'sale']
#if I have to filter, two separate columns, I can do this
df.loc[(df['channel'] == 'sale')&(df['type']=='A')]
#but what if I want to filter one column by more than one value?
df.loc[df['channel'] == ('sale','fullprice')]
这必须是 OR 语句吗?我可以使用 in?
在 SQL 中做类似的事情有一个 df.isin(values)
方法可以测试
DataFrame
中的每个元素是否包含在 values
中。
因此,正如@MaxU 在评论中所写,您可以使用
df.loc[df['channel'].isin(['sale','fullprice'])]
用多个值过滤一列。