如何使用pandas调换DataFrame多级列索引的层级顺序
Pandas多级列索引重排实现方法
你可以通过交换列索引层级后排序的方式实现需求,核心操作仅需2行代码:
# 交换列的两级索引位置 df.columns = df.columns.swaplevel(0, 1) # 按第一级列索引对列排序 df = df.sort_index(axis=1, level=0)
你也可以用reorder_levels方法实现相同效果:
df = df.reorder_levels([1, 0], axis=1).sort_index(axis=1, level=0)
以下是完整可复现的测试代码:
import pandas as pd # 构造原始测试数据 columns = pd.MultiIndex.from_product( [["stock1", "stock2", "stock3"], ["price", "volume"]] ) df = pd.DataFrame( [[1,2,3,4,5,6], [2,3,4,5,6,7]], columns=columns ) # 执行转换 df.columns = df.columns.swaplevel(0, 1) df = df.sort_index(axis=1, level=0) # 打印验证结果 print(df)
运行后输出的结构和你需要的目标结构完全一致。
内容的提问来源于stack exchange,提问作者vvv
相关产品推荐
相关产品推荐

