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

如何统计Pandas DataFrame中多个指定值的总出现次数

问题背景

假设我们有如下DataFrame df:

c1  c2  c3  c4  c5  c6
0   'A' 'B' NaN NaN NaN NaN
1   'C' 'D' NaN NaN NaN NaN
2   'A' 'A' 'B' NaN NaN NaN
3   'A' 'B' 'C' NaN NaN NaN
4   NaN NaN NaN NaN NaN NaN
需求描述

我们已经知道统计单个值'B'的总出现次数,可以用代码(df == 'B').sum().sum()实现。现在需要统计列表v = ['B', 'C']中所有元素在该DataFrame内的总出现次数,逐值相加的写法(df == 'B').sum().sum() + (df == 'C').sum().sum()虽然能得到正确结果,但灵活性不足,待匹配元素多的时候写法非常繁琐,需要更通用的实现方法。

通用实现方案

直接使用Pandas提供的isin()方法即可满足需求,代码如下:

(df.isin(v)).sum().sum()

该方案逻辑清晰:

  • df.isin(v)会返回一个和原DataFrame维度完全一致的布尔矩阵,元素在列表v内的位置为True,其余位置为False
  • 连续调用两次sum(),第一次按列统计每列的匹配数量,第二次把所有列的统计结果累加,最终得到所有匹配元素的总出现次数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:00:00