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

如何将Pandas DataFrame中逗号分隔多值列拆分为对应单独行

你可以直接用 Pandas 内置的 explode 方法实现需求,仅需两步即可完成:

  1. 将 Race、TGR1 两列的逗号分隔字符串转为列表类型
  2. 对两列同时执行 explode 操作,拆分后其余列的内容会自动复用,且两列的取值会按原顺序一一对应。

示例代码

import pandas as pd

# 此处替换为你自己的数据源读取逻辑,比如pd.read_csv(文件路径)
df = pd.DataFrame({
    'Track': ['Addington', 'Mount Gambier'],
    'Date': ['24/09/2021', '26/09/2021'],
    'Race': ['R1,R2,R3,R4,R5,R6,R7,R8,R9,R0,R1,R2', 'R1,R2,R3,R4,R5,R6,R7,R8,R9,R0'],
    'TGR1': ['5,8,2,5,6,1,6,3,1,2,1,2', '8,1,4,8,8,1,2,1,2,2']
})

# 拆分字符串为列表
df['Race'] = df['Race'].str.split(',')
df['TGR1'] = df['TGR1'].str.split(',')

# 多列同时拆分为多行,ignore_index=True用于重置结果的行索引
df = df.explode(['Race', 'TGR1'], ignore_index=True)

# 输出查看结果
print(df)

如果你的 Pandas 版本较低不支持多列同时 explode,可以链式调用单列 explode 实现相同效果:

df = df.explode('Race', ignore_index=True).explode('TGR1', ignore_index=True)

该方法写法简洁、性能优异,且天然兼容两列之外的其他所有字段,不需要额外调整适配逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:45:01