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

如何将列追加到MultiIndex列DataFrame指定层级的末尾?

解决MultiIndex列DataFrame追加列到指定层级末尾的问题

问题场景

现有两个带MultiIndex(层级为kind和names)列的DataFrame:df和df1,需求是将df1中kind=A、names=potato的列追加到df的kind=A层级的names末尾,得到目标df2。直接使用pandas.concat([df1, df], axis=1).sort_index(level="kind", axis=1)会导致potato列出现在A层级的开头,不符合需求。

原始数据

df数据:

kind                            A               B
names          u1      u2      u3      y1      y2
Time
0.0        0.5083  0.1007  0.8001  0.7373  0.1387
0.1        0.6748  0.0354  0.0076  0.8421  0.2670
0.2        0.1753  0.1013  0.5231  0.8060  0.0040
0.3        0.5953  0.6505  0.7127  0.0771  0.1023
0.4        0.4409  0.0193  0.6765  0.9800  0.0715

df1数据:

kind            A      
names      potato        
Time
0.0        0.4043  
0.1        0.9801 
0.2        0.1298  
0.3        0.9564  
0.4        0.4409  

目标df2:

kind                                    A               B
names          u1      u2      u3  potato      y1      y2
Time
0.0        0.5083  0.1007  0.8001  0.4043  0.7373  0.1387
0.1        0.6748  0.0354  0.0076  0.9801  0.8421  0.2670
0.2        0.1753  0.1013  0.5231  0.1298  0.8060  0.0040
0.3        0.5953  0.6505  0.7127  0.9564  0.0771  0.1023
0.4        0.4409  0.0193  0.6765  0.4409  0.9800  0.0715

解决方案

方法一:拆分层级后合并

先提取df中kind=A的列,与df1的potato列按顺序合并,再和df中其他层级的列组合:

import pandas as pd

# 提取df中kind为A的所有列
a_group = df.loc[:, 'A']
# 将potato列追加到A组末尾
updated_a_group = pd.concat([a_group, df1], axis=1)
# 合并更新后的A组与原df的B组列
df2 = pd.concat([updated_a_group, df.loc[:, 'B']], axis=1)

方法二:构造新列索引后重排

通过构造新的MultiIndex列顺序,确保potato列处于A层级末尾,再重新索引DataFrame:

import pandas as pd

# 获取原df的列索引列表
original_cols = df.columns.tolist()
# 找到A组最后一列的位置,插入新列
last_a_idx = [i for i, col in enumerate(original_cols) if col[0] == 'A'][-1] + 1
original_cols.insert(last_a_idx, ('A', 'potato'))
# 合并df与df1,再按新列顺序重排
df2 = df.join(df1).reindex(columns=original_cols)

结果验证

执行上述任一方法后,df2的列结构将与目标一致,potato列会出现在A层级的u3之后,而非开头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:55:20