python - 在 Pandas 中方便地将 DatetimeIndex 拆分为日期和时间 MultiIndex

标签 python pandas timestamp time-series multi-index

假设我有这样的 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

我希望它像这样多索引:

                                 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 的新索引,但是是否有更“pandaic”的' 这样做的方式? 在我看来,这种功能会派上用场...

最佳答案

我能想到的最好的方法是

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]

关于python - 在 Pandas 中方便地将 DatetimeIndex 拆分为日期和时间 MultiIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23549975/

相关文章:

php - MySQL 和 PHP 中的时间戳比较(UT​​C、+0000、时区)

python - 覆盖实例上的特殊方法

python - gzip 压缩文件的 pandas read_csv 不会推断数字列类型

python - 从列中提取数据

python - 如何在 pandas 数据帧中选择最小值并保存我的字符串数据

python - 如何规范 CSV 中的字典?

python matplotlib 以小时格式设置 xticks

python - 如何在 Python Cerberus 中将字符串强制转换为日期时间?

python - 使用组合框禁用/启用小部件?

mysql - SQL 将以秒为单位的随机部分应用于时间戳