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

Pandas按逗号拆分单元格为多行并实现分组计数的优化方法

解决方案

优化逻辑

  • 将拆分、去空格的重复逻辑封装为可复用的通用函数,所有字符清洗规则统一管理,修改时只需要调整一处即可
  • 用列表配置所有需要拆分的字段,后续新增拆分字段时只需要修改列表内容,不需要重复编写处理逻辑
  • 拆分过程同步完成空白字符清理,不需要拆分结束后单独对每列执行去空格操作,避免出现字段遗漏的情况

完整实现代码

import pandas as pd

# 示例数据
data = {'place':["US", "Japan", "UK", "Japan", "UK"],
        'colour':["red", "yellow", "blue", "red", "green"],
        'fruit1':["organge, apple", "apple", "organge, dragon fruit, watermelon", "organge, others", "others"],
        'fruit2':["apple, organge", "others", "watermelon, dragon fruit, organge", "watermelon", "others"]}
df = pd.DataFrame(data)

# 定义拆分+去空格通用函数,兼容各类异常空白字符
def split_strip_explode(series, sep=','):
    return series.str.split(sep).explode().str.strip()

# 配置需要拆分的字段,新增拆分字段仅需修改此处
need_split_cols = ['fruit1', 'fruit2']

# 逐列执行拆分处理
for col in need_split_cols:
    df[col] = split_strip_explode(df[col])

# 分组计数
result = df.groupby(need_split_cols, as_index=False).size().rename(columns={'size': 'counts'})
print(result)

运行上述代码得到的输出与你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:39:02