首页 > 解决方案 > 如何向现有 df 添加多级列索引?

问题描述

如何向现有 df 添加多级列索引?我从 Excel 文件中读取了 df,因此我不想使用 pd.DataFrame 重新创建 df。

谢谢

当前状态

         |Total Assets| AUMs |
Firm 1   | 100        | 300  |
Firm 2   | 200        | 3400 |
Firm 3   | 300        | 800  |
Firm 4   | NaN        | 800  |

期望状态

Importance| H           | H      |
Category | Cat1         | Cat2   |
         |Total Assets  | AUMs   | 
Firm 1   | 100          |  300   |  
Firm 2   | 200          | 3400   |  
Firm 3   | 300          | 800    | 
Firm 4   | NaN          | 800    |  

标签: pythonpandasmulti-indexmulti-level

解决方案


pandas.MultiIndex您可以使用多个构造函数之一手动构造一个。从您的案例的文档中:

对于您的情况,我认为pd.MultiIndex.from_arrays可能是最简单的方法:

df.columns=pd.MultiIndex.from_arrays([['H','H'],['Cat1','Cat2'],df.columns],names=['Importance','Category',''])

输出:

Importance| H           | H      |
Category | Cat1         | Cat2   |
         |Total Assets  | AUMs   | 
Firm 1   | 100          |  300   |  
Firm 2   | 200          | 3400   |  
Firm 3   | 300          | 800    | 
Firm 4   | NaN          | 800    |  

推荐阅读