Как использовать pandas rename () для многоиндексных столбцов? - PullRequest
0 голосов
/ 27 ноября 2018

Как можно просто переименовать столбец MultiIndex из pandas DataFrame, используя функцию rename ()?

Давайте рассмотрим пример и создадим такой 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

IЯ могу выбрать данный столбец 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: мне известны другие варианты сглаживания имен столбцов ранее, но это мешаетя ищу более чистое решение (см. мой предыдущий вопрос )

...