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
相关产品推荐
相关产品推荐

