繁体   English   中英

处理 value_counts 时如何在 pandas 中使用 AND 条件?

[英]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.mapSeries.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM