如何重命名 pandas 中的 MultiIndex 列?
例如,这是我希望能够做的:
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]],
columns=pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)]))
df.rename(columns={('a', 1): 'd', ('a', 2): 'e', ('b', 1): 'f'}, errors='raise')
Run Code Online (Sandbox Code Playgroud)
但是,这没有任何效果,返回一个与原始列名相同的 DataFrame:
a b
1 2 1
0 1 2 3
1 4 5 6
2 7 8 9
Run Code Online (Sandbox Code Playgroud)
我想得到:
d e f
0 1 2 3
1 4 5 6
2 7 8 9
Run Code Online (Sandbox Code Playgroud)
(我用来errors='raise'确保正确引用列名称。)
当您没有 MultiIndex 时,这有效:
df = …Run Code Online (Sandbox Code Playgroud)