You need to enable JavaScript to run this app. 如何高效将Pandas单行多数据点拆分为独立多行且不新增列
优惠活动
大模型
产品
解决方案
定价
更多

如何高效将Pandas单行多数据点拆分为独立多行且不新增列

实现方法

直接用Pandas内置的字符串拆分和行展开方法就能实现,逻辑简单效率高,不需要正则处理:

import pandas as pd

# 你的示例数据
df = pd.DataFrame({'Green Bay Packers' : ['30-18-0', '5-37', '10-71' ],
                    'Chicago Bears' : ['45-26-1', '5-20', '10-107']}, 
                 index=['Att - Comp - Int', 'Sacked - Yds Lost', 'Penalties - Yards'])

# 1. 所有列按-拆分字符串为列表,同时去除拆分后元素两端的冗余空格
df = df.apply(lambda col: col.str.split('-').apply(lambda lst: [i.strip() for i in lst]))

# 2. 对索引按分隔符「 - 」(带前后空格)拆分并展开为新索引
new_index = df.index.str.split(' - ').explode()

# 3. 对所有列的列表执行行展开,替换为新索引
result = df.apply(pd.Series.explode).set_axis(new_index, axis=0)

# 可选:如果需要把值转为整数类型方便后续计算
result = result.astype(int)

运行后输出的result和你期望的结果完全一致。这个方法兼容任意数量的球队列,不需要针对单个字段做适配,新增列会自动处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 15:06:00