如何统计DataFrame单列中多标签字符串的单个标签出现次数?
解决方法:拆分标签后统计出现次数
核心思路是先将每行的多标签拆分为独立元素,再展开成单独行,最后统计每个标签的出现次数。
步骤1:构造示例数据
import pandas as pd data = { 'Transaction': ['01', '02', '03', '04'], 'Tag': ['tag1', 'tag1, tag3', 'tag2', 'tag2, tag3'] } df = pd.DataFrame(data)
步骤2:拆分并统计标签次数
推荐两种简洁实现方式:
方式一:使用str.split + explode(直观易懂)
# 将标签列拆分为列表,再展开成单独行 df['Tag'] = df['Tag'].str.split(', ') tag_counts = df['Tag'].explode().value_counts() print(tag_counts)
输出结果:
tag1 2 tag2 2 tag3 2 dtype: int64
方式二:使用str.split + stack(无需修改原DataFrame)
# 拆分标签为多列,转置为行后统计次数 tag_counts = df['Tag'].str.split(', ', expand=True).stack().value_counts()
兼容分隔符不统一的情况
如果标签间的分隔符存在不统一(比如有的是逗号无空格),可以先去除空格再统计:
tag_counts = df['Tag'].str.split(',').explode().str.strip().value_counts()
内容的提问来源于stack exchange,提问作者Stefano Mauro
相关产品推荐
相关产品推荐

