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

使用pandas的.str.split()函数时如何保留列名并避免多重索引

解决方案:拆分字符串列为单列并保留列名、消除多重索引

最优实现方案(pandas ≥ 1.1.0 推荐)

直接使用split生成列表后调用explode方法,一步完成单列转换,自动保留原列名,且默认无多重索引:

import pandas as pd

data = {'Name':['Tom Wilson', 'nick snyder', 'krish moham', 'jack oconnell']}
df = pd.DataFrame(data)

# 拆分后转换为单列,ignore_index参数重置为连续单层索引
df = df.assign(Name=df['Name'].str.split(' ')).explode('Name', ignore_index=True)
print(df)

输出结果:

Name
0        Tom
1     Wilson
2       nick
3     snyder
4      krish
5      moham
6       jack
7  oconnell

兼容旧版本pandas的修改方案(适配原有实现逻辑)

如果你需要沿用原来split(expand=True) + stack的写法,可通过重置索引、手动指定列名的方式满足需求:

import pandas as pd

data = {'Name':['Tom Wilson', 'nick snyder', 'krish moham', 'jack oconnell']}
df = pd.DataFrame(data)

df = df['Name'].str.split(' ', expand=True)\
               .stack(dropna=True)\
               .reset_index(drop=True)\
               .to_frame('Name')
print(df)

两种方案均满足:

  • 最终输出的DataFrame保留Name列名,可直接供后续脚本调用
  • 索引为连续单层索引,无多重索引问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:24:05