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

Pandas:拆分DataFrame的Badge列并保留拆分列(维持顺序)

在Pandas DataFrame中拆分|分隔的Badge列为独立列并保留行顺序

直接用以下代码即可实现需求,完整流程如下:

import pandas as pd

data = {'Player': ['Steph', 'LeBron', 'Giannis'],
        'Badge': ['200 3PT Sniper | 210 Rim Finisher', '210 Rim Finisher | 205 Deadeye Passer | 215 Point Forward', '220 2Way Playmaker | 210 Rim Finisher']
        }

df = pd.DataFrame(data)

# 按带空格的|拆分Badge列,生成多列DataFrame
split_badges = df['Badge'].str.split(' | ', expand=True)
# 给拆分后的列重命名为Badge_1、Badge_2...格式
split_badges.columns = [f'Badge_{i+1}' for i in split_badges.columns]
# 合并原Player列与拆分后的徽章列,保留原行顺序
result_df = pd.concat([df['Player'], split_badges], axis=1)

print(result_df)

关键步骤说明:

  • str.split(' | ', expand=True):指定分隔符为带前后空格的|(匹配原数据里的分隔格式),expand=True参数会自动将拆分结果转为多列DataFrame,拆分数量不足的行自动填充空值
  • 列名重命名:用列表推导式把默认的数字列名替换为Badge_1这类更直观的命名
  • pd.concat([...], axis=1):按列合并数据,完全保留原DataFrame的行顺序

执行后输出结果与预期一致:

Player             Badge_1             Badge_2            Badge_3
0    Steph      200 3PT Sniper    210 Rim Finisher                   
1   LeBron    210 Rim Finisher  205 Deadeye Passer  215 Point Forward
2  Giannis  220 2Way Playmaker    210 Rim Finisher                   

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:30:01