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

如何在Pandas中将多级索引转换为列名后缀?

将多级列索引转换为带后缀的单级列索引

问题说明

现有如下Pandas DataFrame:

import pandas as pd
df = pd.DataFrame(columns=pd.MultiIndex.from_product([['X', 'Y'], ['L', 'R']]), 
             data=[[1, 5, 2, 6],
                   [3, 7, 4, 8]])

其列是双层索引结构:

X       Y
    L   R   L   R
-----------------
0   1   5   2   6
1   3   7   4   8

需要将上层列索引作为后缀添加到下层列名后,得到单级列索引的结果:

L_X  R_X  L_Y  R_Y
----------------------
0   1    5    2    6
1   3    7    4    8

实现方案

方案1:列表推导式直接拼接

遍历多级列索引的元组,按下层_上层的格式拼接成新列名:

df.columns = [f"{lower}_{upper}" for upper, lower in df.columns]

方案2:map函数配合lambda表达式

用map批量处理每个列索引元组,提取并拼接索引值:

df.columns = df.columns.map(lambda idx: f"{idx[1]}_{idx[0]}")

方案3:str.join灵活拼接(支持自定义分隔符)

通过反转索引元组顺序,再用指定分隔符连接,适合需要调整分隔符的场景:

# 下划线分隔,也可替换为其他字符比如'-'
df.columns = df.columns.map(lambda idx: "_".join(reversed(idx)))

执行任意一种方案后,DataFrame的列都会转换为目标格式,数据保持不变。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:15:49