Разделить DatetimeIndex на дату и время MultiIndex удобно в Пандах
Допустим, у меня есть данные DatetimeIndex:ed, подобные этим (конечно, будет несколько дней):
X Y Z
timestamp
2013-01-02 10:00:13.295000 366 -8242 -1820
2013-01-02 10:00:13.329000 366 -8016 -1820
2013-01-02 10:00:13.352000 32 -8016 -1820
2013-01-02 10:00:13.882000 32 -9250 -1820
2013-01-02 10:00:15.076000 -302 -9250 -1820
и я хочу это MultiIndexed, как это:
X Y Z
Date Time
2013-01-02 10:00:13.295000 366 -8242 -1820
10:00:13.329000 366 -8016 -1820
10:00:13.352000 32 -8016 -1820
10:00:13.882000 32 -9250 -1820
10:00:15.076000 -302 -9250 -1820
Я знаю, что вы могли бы (вероятно) извлечь DatetimeIndex, разделить его с помощью.date() и.time() на два столбца и установить его в качестве нового индекса для Dataframe, но есть ли более "пандейский" способ сделать это? Казалось бы, такая функциональность пригодится...
1 ответ
Решение
Лучший способ, о котором я могу думать, это
In [13]: df.index = pd.MultiIndex.from_arrays([df.index.date, df.index.time], names=['Date','Time'])
In [14]: df
Out[14]:
X Y Z
Date Time
2013-01-02 10:00:13.295000 366 -8242 -1820
10:00:13.329000 366 -8016 -1820
10:00:13.352000 32 -8016 -1820
10:00:13.882000 32 -9250 -1820
10:00:15.076000 -302 -9250 -1820
[5 rows x 3 columns]