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

Python pandas如何将逗号分隔字段拆分为多行实现数据归一化

Pandas逗号分隔字段拆分为多行实现方案

第一步拆分逗号分隔值为独立行的核心实现逻辑是:先将逗号拼接的字符串拆分为列表,再通过explode方法将列表元素展开为独立行,可直接衔接你已有的第二步拆分代码。


完整实现代码

1. 模拟原始测试数据

对应你描述的id=1、id=2的原始数据结构:

import pandas as pd

df = pd.DataFrame({
    'id': [1, 2],
    'field': ['A-a,B-b', 'C-c']
})

2. 第一步:拆分逗号分隔值为独立行

# 先按逗号拆分field为列表,再展开为多行,自动重置索引
df = df.assign(field = df['field'].str.split(',')) \
       .explode('field', ignore_index=True)

执行完这步后,数据结构已经符合拆分要求:

  • id=1的记录拆分为2行,field值分别为A-a、B-b
  • id=2的记录保留1行,field值为C-c

3. 第二步:按横杠拆分字段(你已掌握的代码)

直接复用你写好的逻辑即可:

df[['field_1', 'field_2']] = df['field'].str.split('-', expand=True)

注意事项

  • 如果原始数据中field列存在空值,可在split前补充空值填充避免报错:df['field'].fillna('').str.split(',')
  • 如果你使用的pandas版本低于1.1.0,explode方法不支持ignore_index参数,执行完拆分后手动执行df = df.reset_index(drop=True)即可重置索引
  • 如果数据中存在除id、field外的其他列,该方法会自动将其他列的值同步复制到拆分后的新行,无需额外适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:48:14