You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas处理value_counts时如何使用AND条件实现自定义数据筛选

解决方案

你原有代码使用&(逻辑与)串联两个条件,要求数据同时满足「不属于出现次数≤3的城市」和「城市为SEL」,但SEL本身出现次数仅为1,属于要移除的类别,两个条件无法同时满足,因此拿不到预期结果。

将逻辑运算符替换为|(逻辑或)即可实现同时匹配两种符合要求的数据:

import pandas as pd

df = pd.DataFrame({
    'city': ['NYC', 'NYC', 'SYD', 'NYC', 'SEL', 'NYC', 'NYC']
})

value_counts = df['city'].value_counts()
# 过滤逻辑:满足次数阈值 或 属于指定例外项
df = df[(~df.city.isin(value_counts[value_counts <= 3].index)) | (df.city == 'SEL')]

如果后续需要添加多个例外项,更易维护的写法如下:

# 定义例外项列表
exceptions = ['SEL']
# 合并需要保留的类别:满足阈值的类别 + 例外项
keep_cities = value_counts[value_counts > 3].index.union(exceptions)
df = df[df.city.isin(keep_cities)]

两种写法最终得到的过滤结果一致,仅保留NYC和SEL对应的数据,剔除出现次数不足阈值的SYD。

内容的提问来源于stack exchange,提问作者ababa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:57:01