如何使用pandas统计数据集中指定列的不同配对元素出现次数
Pandas 统计列中配对元素的全局出现次数
我们需要统计数据集中每个括号配对元素在全量行中的总出现次数,示例数据集如下:
col ('a', 'b'),('a', 'c'),('b', 'c') ('g', 'h'),('a', 'c'),('a', 'b')
预期输出每个配对对应的累计出现次数,效果如下:
Output: ('a', 'b') 2 ('a', 'c') 2 ('b', 'c') 1 ('g', 'h') 1
实现代码
在pandas中可通过以下一行代码实现需求:
h = data['col'].str.findall(r'(\([^()]+\))').explode().value_counts()
代码逻辑说明
- 第一步用
str.findall(r'(\([^()]+\))')通过正则匹配,提取每行中所有符合(字符,字符)格式的配对元素,每行返回匹配结果的列表 - 第二步用
explode()将列表形式的匹配结果拆分为独立行,每个配对单独占据一行 - 第三步用
value_counts()统计所有配对的全局出现频次
内容的提问来源于stack exchange,提问作者user15649753
相关产品推荐
相关产品推荐

