在Pandas中方便地将DatetimeIndex拆分为日期和时间的MultiIndex
假设我有一些带有日期时间索引的数据,像这样(当然会有好几天的数据):
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
我想把它变成多重索引,像这样:
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
我知道你可以(可能)提取这个日期时间索引,用.date()和.time()把它分成两列,然后把这两列设为数据框的新索引,但有没有更“符合pandas风格”的方法呢?我觉得这种功能应该会很有用……
1 个回答
13
我想到的最好方法是
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]