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

如何基于数组与OrderedDict为Pandas创建多级列索引

实现方案

核心逻辑是基于现有两个变量生成等长的level0列名序列,和已有的level1列名组合为多级索引即可,全程不会修改原有的col_names和col_layout_dict变量,不影响其他代码逻辑。

完整代码示例

import pandas as pd
from collections import OrderedDict

# ------------ 以下是你已有的变量声明,仅做示例 ------------
# 原始DataFrame
df = pd.DataFrame(
    [["val1", "val2", "val3", "val4", "val5", "val6"]],
    columns=["col1", "col2", "col3", "col4", "col5", "col6"]
)
# level1列名数组
col_names = ['id', 'a', 'b', 'a', 'b', 'c']
# level0列结构字典
col_layout_dict = OrderedDict([('ID', 1), ('A', 2), ('B', 2), ('C', 1)])
# -------------------------------------------------------

# 1. 生成与列数等长的level0列名列表
level0_cols = []
for level0_name, sub_col_count in col_layout_dict.items():
    level0_cols.extend([level0_name] * sub_col_count)

# 2. 构造双层多级列索引,赋值给DataFrame
df.columns = pd.MultiIndex.from_arrays(
    arrays=[level0_cols, col_names],
    names=["level0", "level1"] # 可根据需要修改层级名,不需要可以删掉这个参数
)

效果验证

执行后打印df即可看到你需要的双层列结构:

IDABC
idaba
val1val2val3val4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:36:05