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

如何为带MultiIndex的DataFrame添加索引拼接字符串列

解决方法:在保留MultiIndex的前提下新增拼接列

嘿,这事儿好办,给你两种简洁的实现方式,都不会动到你现有的MultiIndex结构:

方法一:直接提取索引层级拼接

适合你这种只有两个层级的简单场景,直接提取每个层级的值转成字符串后拼接:

import pandas as pd

# 先还原你的初始DataFrame
df = pd.DataFrame([[1,2,3], [11,22,33]], columns = ['A', 'B', 'C'])
df.set_index(['A', 'B'], inplace=True)

# 新增列D:拼接索引A和B的字符串形式
df['D'] = df.index.get_level_values('A').astype(str) + '_' + df.index.get_level_values('B').astype(str)

执行后你就能得到想要的结果:

C      D
A  B
1  2     3    1_2
11 22   33  11_22

方法二:用index.map批量处理(更通用)

如果以后你的MultiIndex层级变多,这种方法更灵活,不用逐个提取层级:

# 遍历每个索引元组,把元组里的元素转成字符串后用下划线连接
df['D'] = df.index.map(lambda x: '_'.join(map(str, x)))

这个逻辑不管你有2个还是N个索引层级,都能自动把所有层级拼接成层级1_层级2_..._层级N的格式,实用性更强~

两种方法都不会修改原有的MultiIndex结构,只是新增一列,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:40:18