python:比较不同日期的两个时间戳

时间:2015-03-10 20:02:18

标签: python datetime dataframe

我有一个数据框,索引是带有“YYYY-MM-DD HH:MM:SS”的时间戳格式 现在我想将这个数据框分成两部分。 一个是每天 12pm('YYYY-MM-DD 12:00:00')之前的数据 另一个是时间 每天中午12点后的数据。

我只是坚持这个问题好几天了。有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您有DatetimeIndex(如果没有,df.index = pd.to_datetime(df.index)应该可以获得一个),那么您可以访问.hour,例如df.index.hour,并选择使用:

>>> df.head()
                     A
2015-01-01 00:00:00  0
2015-01-01 01:00:00  1
2015-01-01 02:00:00  2
2015-01-01 03:00:00  3
2015-01-01 04:00:00  4
>>> morning = df[df.index.hour < 12]
>>> afternoon = df[df.index.hour >= 12]
>>> morning.head()
                     A
2015-01-01 00:00:00  0
2015-01-01 01:00:00  1
2015-01-01 02:00:00  2
2015-01-01 03:00:00  3
2015-01-01 04:00:00  4
>>> afternoon.head()
                      A
2015-01-01 12:00:00  12
2015-01-01 13:00:00  13
2015-01-01 14:00:00  14
2015-01-01 15:00:00  15
2015-01-01 16:00:00  16

您也可以使用groupby,例如df.groupby(df.index.hour < 12),但这似乎有点矫枉过正。但是,如果你想要一个更复杂的分工,那么可能就是这样。