Как вернуть мультииндекс DateTime в нормальный индекс DateTime? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть два фрейма данных, индексы которых различаются, как показано ниже;

df1:

                 C1
   Y     M  D
    2020  5  1   5
             2   7
             3   34
             4   4
             5   98

df2

                C1 
    Date
    2020-5-6   2
    2020-5-7   11
    2020-5-8   15
    2020-5-9   3
    2020-5-10  8

Из-за того, как они были очищены и сгруппированы, et c индекс находится в разных форматах. Мне нужно объединить эти фреймы данных вместе.

Есть ли способ просто преобразовать мультииндекс обратно в один индекс? Или можно их объединить такими, какие они есть? Кажется, я не могу этого понять.

Любая помощь очень ценится!

Dataframe 1

Dataframe 2

Ответы [ 2 ]

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

Вот другой подход, который чище, чем связанный вопрос:

df.index = pd.to_datetime([f'{y}-{m}-{d}' for y,m,d in df.index],
                          format='%Y-%m')

Вывод:

            C1
2020-05-01   5
2020-05-02   7
2020-05-03  34
2020-05-04   4
2020-05-05  98

Примечание : для Python 2,7 вместо f'{y}-{m}-{d}', делать

'{}-{}-{}'.format(y,m,d)
0 голосов
/ 27 мая 2020

У нас есть функция to_datetime с правильным названием

df.index=pd.to_datetime(df.rename_axis(['year','month','day']).index.to_frame())
df
Out[435]: 
            C1
2020-05-01   5
2020-05-02   7
2020-05-03  34
2020-05-04   4
2020-05-05  98
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...