Переименовать имя в Python Pandas MultiIndex - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь переименовать имя столбца в Pandas MultiIndex, но это не работает. Здесь вы можете увидеть мою серию объектов. Кстати, почему фрейм данных df_injury_record становится объектом серии в этой функции?

Frequency_BodyPart = df_injury_record.groupby(["Surface","BodyPart"]).size()

В следующей строке вы увидите мою попытку переименовать столбец.

Frequency_BodyPart.rename_axis(index={'Surface': 'Class'})

Но после этого столбец имеет то же имя.

С уважением

1 Ответ

0 голосов
/ 24 января 2020

Одной из возможных проблем должна быть pandas версия под 0.24, или вы забыли назначить обратно, как упомянуто @ anky_91:

df_injury_record = pd.DataFrame({'Surface':list('aaaabbbbddd'),
                                 'BodyPart':list('abbbbdaaadd')})

Frequency_BodyPart = df_injury_record.groupby(["Surface","BodyPart"]).size()
print (Frequency_BodyPart)
Surface  BodyPart
a        a           1
         b           3
b        a           2
         b           1
         d           1
d        a           1
         d           2
dtype: int64

Frequency_BodyPart = Frequency_BodyPart.rename_axis(index={'Surface': 'Class'})
print (Frequency_BodyPart)
Class  BodyPart
a      a           1
       b           3
b      a           2
       b           1
       d           1
d      a           1
       d           2
dtype: int64

Если хотите, чтобы 3 столбца DataFrame работали также для старых версий pandas:

df = Frequency_BodyPart.reset_index(name='count').rename(columns={'Surface': 'Class'})
print (df)
  Class BodyPart  count
0     a        a      1
1     a        b      3
2     b        a      2
3     b        b      1
4     b        d      1
5     d        a      1
6     d        d      2
...