Как я могу получить столбцы из мультииндекса? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть фрейм данных под названием «таблица ключей», в котором есть мультииндекс, состоящий из «месяца», «дня» и «часа». Я хочу сохранить этот мультииндекс при создании 3 новых столбцов со значениями «Месяц», «День» и «Час». Как мне это сделать? Вот фрейм данных:

keytable.head()
Out[59]: 
                 pp    pres  rad    rh  ...   ws  WeekDay   Power_kW  Power_kW18
Month Day Hour                          ...                                     
1     3   0     0.0  1027.6  4.1  78.9  ...  0.0        3  77.303046  117.774419
          1     0.0  1027.0  3.3  79.7  ...  0.0        3  72.319602  110.710928
          2     0.0  1027.0  3.3  81.8  ...  0.0        3  71.831852  106.067667
          3     0.0  1027.0  1.9  86.6  ...  0.0        3  69.555751  106.325955
          4     0.0  1027.0  3.8  92.2  ...  0.0        3  69.525780  102.855393

[5 rows x 11 columns]

Ответы [ 2 ]

1 голос
/ 07 мая 2020

В конце концов я сделал reset_index () и удалил столбец datetime, чтобы я мог его повторно проиндексировать.

keytable=keytable.reset_index()
keytable['datetime'] = pd.to_datetime(keytable['datahora'].str.replace('/','-'), errors='coerce')
keytable=keytable.set_index('datetime')
1 голос
/ 07 мая 2020

Чтобы создать новые столбцы с именами «Месяц», «День», «Год», подойдет просто new_table=key_table.reset_index(). Дублирование индекса в виде столбцов - очень плохая практика, но если вы действительно настаиваете, тогда

newdf = new_table[['Year', 'Month', 'Year']].set_index(['Year', 'Month', 'Year']).
new_table.set_index(newdf.index, inplace=True) 

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...