如何在pandas DataFrame透视时生成MultiIndex多级列结构
实现方法
你可以直接用pandas内置的透视方法完成该需求,两种常用实现路径如下:
方法1:直接用pivot方法
指定索引、透视列和取值列即可,自动生成多级列索引:
import pandas as pd # 假设原始数据存在变量df中 pivot_result = df.pivot( index="ID", columns="Date", values=["Value 1", "Value 2"] )
方法2:用set_index+unstack组合实现
先将ID和Date设为复合索引,再把Date维度展开到列上:
pivot_result = df.set_index(["ID", "Date"]).unstack(level="Date")
两种方法得到的结果完全符合你需要的MultiIndex列结构,第一层为Value 1/Value 2,第二层为年份2019/2020。如果需要调整列的排序规则,可以额外对列索引执行排序:
# 按第一层列名排序,再按第二层年份升序 pivot_result = pivot_result.sort_index(axis=1, level=[0,1])
内容的提问来源于stack exchange,提问作者phildowd
相关产品推荐
相关产品推荐

