Pandas中使用value_counts()如何返回或提取单个值?
pandas value_counts()指定值提取方案
pandas.Series.value_counts() 方法默认返回的是以唯一值为索引、对应出现频次为值的Series对象,本身不支持直接返回单个值,但你可以通过以下几种简单方式提取指定值的统计结果:
- 方法1:直接通过索引取值
这是最常用的写法,直接把你要查询的目标值当做返回Series的索引传入即可:
import pandas as pd # 示例数据 s = pd.Series(["苹果", "香蕉", "苹果", "橙子", "苹果", "香蕉"]) # 提取值为「苹果」的出现次数 apple_count = s.value_counts()["苹果"] print(apple_count) # 输出结果为 3
如果不确定目标值是否存在于原序列中,可以用get方法避免KeyError,不存在时返回自定义默认值(比如0):
# 查询不存在的值「葡萄」,默认返回0 grape_count = s.value_counts().get("葡萄", 0)
- 方法2:布尔索引筛选
如果你需要按频次反向查对应值,或者需要多条件匹配,可以用布尔索引:
# 提取出现次数为2的所有值 count_2_values = s.value_counts()[s.value_counts() == 2].index.tolist() # 输出结果为 ['香蕉'] # 用loc显式指定索引取值,写法更规范 banana_count = s.value_counts().loc["香蕉"]
- 额外优化建议
如果你只需要统计单个值的出现次数,不需要全量统计所有值的频次,可以直接用条件求和的方式,性能比调用value_counts()更高:
apple_count_fast = (s == "苹果").sum()
内容的提问来源于stack exchange,提问作者Ron99
相关产品推荐
相关产品推荐

