如何对DataFrame中diff_2列的两类变更统计计数并以逗号分隔?
统计DataFrame中diff_2列两类变更数量的实现方法
核心思路
先从diff_2列的文本里提取出变更类型标签(即方括号[]包裹的内容),再统计各类标签的出现次数,最后把结果转成逗号分隔的格式。
具体步骤
提取变更类型标签
用正则表达式匹配每行文本中方括号内的内容,生成新列存储类型:# 提取[]中的变更类型,自动忽略无标签的行 df['change_type'] = df['diff_2'].str.extract(r'\[([^\]]+)\]').dropna()统计各类变更的数量
用value_counts()直接统计各类标签的出现次数:counts = df['change_type'].value_counts()转换成逗号分隔格式
根据需求选择输出形式:- 带类型名称的格式:
result = ', '.join([f'{typ}:{num}' for typ, num in counts.items()]) # 示例输出:response-property-became-optional:2, response-property-became-required:1 - 仅输出数值的格式:
result = ', '.join(map(str, counts.values)) # 示例输出:2, 1
- 带类型名称的格式:
注意事项
- 如果
diff_2列存在空值或无标签的行,dropna()会自动过滤这些无效数据,避免统计误差。 - 若变更标签格式有调整,可对应修改正则表达式的匹配规则。
内容的提问来源于stack exchange,提问作者Brie MerryWeather
相关产品推荐
相关产品推荐

