如何在R中统计格式不一致的逗号分隔字符串列内各子项的出现次数
无代码方案(Excel/WPS适用)
- 选中待统计的目标列,点击「数据」选项卡下的「分列」功能,分隔符选择逗号,勾选「连续分隔符视为单个处理」,即可把每个单元格内的多选选项拆分为独立列
- 把拆分后的所有列的内容统一复制粘贴到同一个空白列,此时所有选项变为单列单行的格式
- 选中该列插入数据透视表,行标签选择该选项列,值字段设置为「计数」,即可直接生成各选项的出现次数统计
如果不想做分列操作,也可以直接用公式统计单个选项的出现次数,比如统计Networking的次数公式为:=SUMPRODUCT(--ISNUMBER(SEARCH("Networking",A:A)))
替换公式内的关键词即可统计其他选项。
代码方案(Python Pandas,适用于大数据量场景)
假设你已经将数据集读取为Pandas的DataFrame结构,存储多选内容的列名为preference,实现代码如下:
import pandas as pd from collections import Counter # 拆分每个单元格的多选内容,自动处理逗号后多余空格,展开为单列 all_options = df['preference'].str.split(',\s*').explode() # 统计每个选项的出现次数 count_res = Counter(all_options) # 按要求格式输出结果 for option, count in count_res.items(): print(f'"{option}: {count}"')
运行后即可直接得到你期望的输出结果。
注意:如果你的选项本身包含逗号,需要先将选项内的逗号统一替换为其他特殊字符,再做拆分,避免拆分错误
内容的提问来源于stack exchange,提问作者Auresm
相关产品推荐
相关产品推荐

