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

如何统计DataFrame列中忽略逗号后的独立元素唯一出现次数?

问题描述

现有一个包含10000行的DataFrame,其中A列存在多种逗号分隔的取值组合,示例如下:

+         +
     Index     |    A    |    B
+--------------|---------|----------+
               |         |
1              |Y,Z      |    nan
               |         |
2              |Y,Z,X    |     2
               |         |
3              |Z        |     7
               |         |
4              |nan      |     1
               +         +

需要从A列中统计每个独立元素的出现次数(忽略逗号),期望结果为:

Z = 3
Y = 2
X = 1

而非统计逗号分隔的组合次数(如下所示,非需求结果):

Y,Z = 1
Y,Z,X = 1
X = 1
实现方法

用Pandas的字符串处理与堆叠功能即可快速实现,具体步骤及代码如下:

import pandas as pd

# 假设你的DataFrame名为df
# 1. 过滤A列空值,拆分字符串后展开为一维序列
elements = df['A'].dropna().str.split(',', expand=True).stack()

# 2. 统计元素频次并按降序排列
count_result = elements.value_counts().sort_values(ascending=False)

# 3. 按目标格式输出结果
for elem, cnt in count_result.items():
    print(f"{elem} = {cnt}")

代码说明

  • dropna():移除A列空值行,避免拆分空值时出现异常
  • str.split(',', expand=True):将每个单元格的字符串按逗号拆分为多列
  • .stack():把多列元素堆叠成一维序列,让每个独立元素单独占一行
  • value_counts():自动统计每个元素的出现次数,默认按频次降序排列

运行上述代码后,就能得到符合需求的独立元素统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:45:43