如何使用rename()函数从熊猫DataFrame中简单地重命名MultiIndex列?
让我们看一个示例并创建一个这样的DataFrame:
DATABASE_URL
我可以使用元组作为名称来选择给定的MultiIndex列:
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
但是,当使用与named()函数相同的元组命名时,似乎不被接受:
print(df[("B","min")])
A
1 0
2 3
Name: (B, min), dtype: int64
有什么想法应该调用rename()处理多索引列吗?
PS:我之前知道其他用于平整列名的选项,但这会阻止单行,因此我正在寻找更清洁的解决方案(请参见my previous question)
答案 0 :(得分:0)
这不能回答措辞上的问题,但可以在给定的示例中使用(假设您希望它们全部重命名而没有MultiIndex):
import pandas as pd
df = pd.DataFrame({'A': [1, 1, 1, 2, 2], 'B': range(5), 'C': range(5)})
df = df.groupby("A").agg(
renamed=('B', 'min'),
B_max=('B', 'max'),
C_mean=('C', 'mean'),
)
print(df)
renamed B_max C_mean
A
1 0 2 1.0
2 3 4 3.5
有关更多信息,您可以看到pandas docs和一些related other questions。