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

如何展平Pandas MultiIndex列名并去除末尾多余下划线

你遇到的报错是因为 pandas 中的 Index 对象没有 apply 方法,对 Index 中的字符串做处理需要用 .str 系列方法,或者直接在 map 中完成全部逻辑。

实现代码

你可以在列层级合并后链式调用 str.rstrip('_') 直接清理末尾的多余下划线,一步得到目标结果:

# 展平列名同时清理末尾下划线
df.columns = df.columns.map('_'.join).str.rstrip('_')
df.reset_index(inplace=True)

如果你的列层级里空值比较多,更推荐直接在拼接阶段过滤空字符串,从根源避免产生多余下划线:

# 拼接时直接忽略空层级,不会产生多余下划线
df.columns = df.columns.map(lambda level_vals: '_'.join([v for v in level_vals if v]))
df.reset_index(inplace=True)

两种写法运行后都能得到你预期的列名:Index、data1_F、data2_K、data3。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:06:02