python - 如何向现有 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 |
解决方案
pandas.MultiIndex
您可以使用多个构造函数之一手动构造一个。从您的案例的文档中:
MultiIndex.from_arrays
将数组列表转换为 MultiIndex。MultiIndex.from_tuples
将元组列表转换为 MultiIndex。MultiIndex.from_frame
从 DataFrame 创建一个 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 |
推荐阅读
- angular - 如何在 Angular 中获取当前路由的模块
- html - django 如何使用模板创建退出链接?
- javascript - 使用 ReactJS+semantic-ui-react 下载文件
- android - 如何在android应用程序中导入库模块
- c++ - 在结构数组上使用 c++ std::copy
- apache-kafka - Kafka connect Jdbc 源连接器数据存储为编码字符串
- xslt - 如何从重复的父标签中选择子标签的最后一个值(如果存在)?
- python - 如何获取默认麦克风的全名?
- javascript - ajax 在 Laravel 中不起作用,显示找不到页面
- xml - Groovy 在 SoapUI 响应中从 XML 获取节点值