我有一个数据框,索引是带有“YYYY-MM-DD HH:MM:SS
”的时间戳格式
现在我想将这个数据框分成两部分。
一个是每天 12pm('YYYY-MM-DD 12:00:00')
之前的数据
另一个是时间 每天中午12点后的数据。
我只是坚持这个问题好几天了。有什么建议吗?
谢谢。
答案 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)
,但这似乎有点矫枉过正。但是,如果你想要一个更复杂的分工,那么可能就是这样。