如何向现有 df 添加多级列索引?
How do I add a multi-level column index to an existing 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 |
如何向现有的 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 |