【发布时间】:2019-04-29 05:54:29
【问题描述】:
如何使用 rename() 函数从 pandas DataFrame 中简单地重命名 MultiIndex 列?
我们看一个例子,创建这样一个DataFrame:
import pandas
df = pandas.DataFrame({'A': [1, 1, 1, 2, 2], 'B': range(5), 'C': range(5)})
df = df.groupby("A").agg({"B":["min","max"],"C":"mean"})
print(df)
B C
min max mean
A
1 0 2 1.0
2 3 4 3.5
我可以通过使用元组作为名称来选择给定的 MultiIndex 列:
print(df[("B","min")])
A
1 0
2 3
Name: (B, min), dtype: int64
但是,当使用与 rename() 函数相同的元组命名时,它似乎不被接受:
df.rename(columns={("B","min"):"renamed"},inplace=True)
print(df)
B C
min max mean
A
1 0 2 1.0
2 3 4 3.5
知道应该如何调用 rename() 来处理多索引列吗?
PS :我知道之前扁平化列名的其他选项,但这会阻止单行,因此我正在寻找更清洁的解决方案(请参阅my previous question)
【问题讨论】:
-
看来stackoverflow.com/questions/41221079/… 回答了这个问题
标签: pandas rename multi-index