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

Pandas如何统计DataFrame多列中各不同值的出现次数

多列字符串值总出现次数统计实现

直接将全表数据堆叠为一维序列后做频次统计即可,自动跳过空值,代码如下:

import pandas as pd
import numpy as np

# 示例测试DataFrame
df = pd.DataFrame({'type1':['A11','B11','A11','A'],
                     'type2':['A12','C','A12','D11'],
                     'type3':['C','D11','B','D12'],
                     'type4':[np.nan,'E12','C','E']
                    })

# 统计所有列的各值出现次数
res = df.stack().value_counts().reset_index()
res.columns = ['value', 'count']

运行后得到的结果如下,和需求格式完全匹配:

value  count
0     C      3
1   A11      2
2   A12      2
3   D11      2
4   B11      1
5     A      1
6   D12      1
7     B      1
8   E12      1
9     E      1

逻辑说明

  • df.stack()会将所有列按行堆叠为一维Series,默认自动剔除NaN空值,无需额外做空值过滤
  • value_counts()直接对一维序列做频次统计,默认按出现次数降序排列
  • 最后重命名列即可得到要求的value、count两列结构

注:你给出的预期结果中E12计数为3属于笔误,实际E12仅在type4列出现1次,C的出现次数为3次,和代码运行结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 06:03:19