[英]How to use AND condition in pandas when dealing with value_counts?
基本上,我想通过 value_counts() 过滤 Pandas DataFrame,但是,我也想例外。 例如,这是一个示例代码:
import pandas as pd
df = pd.DataFrame({
'city': ['NYC', 'NYC', 'SYD', 'NYC', 'SEL', 'NYC', 'NYC']
})
value_counts = df['city'].value_counts()
to_remove = value_counts[value_counts <= 3].index
df = df[(~df.city.isin(to_remove)) & (df.city == 'SEL')]
我想同时显示满足 value_counts() 条件的 NYC,但我也想为 'SEL' 设置一个例外
使用|
对于按位OR
:
df = df[(~df.city.isin(to_remove)) | (df.city == 'SEL')]
print (df)
city
0 NYC
1 NYC
3 NYC
4 SEL
5 NYC
6 NYC
另一种使用Series.map
和Series.gt
的解决方案,用于从<=
到>
反转掩码:
value_counts = df['city'].value_counts()
df = df[df['city'].map(value_counts).gt(3) | (df.city == 'SEL')]
print (df)
city
0 NYC
1 NYC
3 NYC
4 SEL
5 NYC
6 NYC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.