【发布时间】:2014-06-26 07:54:40
【问题描述】:
假设我有这样的 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” ' 这样做的方式?在我看来,这种功能会派上用场......
【问题讨论】:
-
您的最终目标是什么?实际上,
df.resample('D')会这样做,但您几乎总是想计算一个归约函数 -
基本上我想在一个循环中遍历所有日期并在每次通过时执行一些数据分析......我想保留所有数据,所以重新采样不会......
-
好吧,看这里:pandas.pydata.org/pandas-docs/stable/…;你不需要明确划分日期和时间,那样效率很低,你也可以
df.groupby(df.index.date).transform(...) -
是的,我实际上已经知道了,但我实际上还希望能够仅通过 number 天而不是“YYYY-MM”来选择日期分组数据-DD' 等...实际上下面的解决方案似乎也不允许这样做。我想我只需要将日期列表写成字符串并循环遍历(?)
-
你也可以在 df.index.day 上进行分组;如果你发现自己在循环,那就是错误的方式。
标签: python pandas timestamp time-series multi-index