我处理的,其中开启和关闭时间之间发生的观测数据集的小时 - 但服务在当天关闭它打开后。例如,开放时间为早上7点,第二天凌晨1点关闭。变化的开始和结束大熊猫时间戳
这感觉就像一个非常普遍的问题 - 我已搜索周围,并愿意接受这样的事实,我可能只是不知道正确的术语来搜索。
对于我的大部分用途的它足以这样做:
open_close = pd.DatetimeIndex(start='2012-01-01 05:00:00', periods = 15, offset='D')
然后,我可以做的DF有趣的小groupbys:
df.groupby(open_close.asof).agg(func).
但我碰到的一个我需要抓住这些开放期的多个时段。我真正希望能够做的就是拥有一个DatetimeIndex,我可以在一天开始时选择。所以我可以重新定义'一天'是从早上5点到上午5点。关于这一点的好处是,我可以使用df[df.index.dayofweek == 6]
之类的东西,并从周日早上5点到周日上午5点收到所有东西。
感觉就像时期......什么预期该请求大熊猫的内部。爱会帮助解决它。
编辑:
我也通过创建与天权
df['shift_day'] = df['datetime'].apply(magicFunctionToFigureOutOpenClose)
另一列想通了这一点 - 所以这不是挡住了我的进步。只是觉得喜欢的事,可以很好地集成到封装(或日期时间...或...某处)
哎,这是一个很酷去groupby的路!但我已经可以分组了 - 当我需要获得多个时间段时,我的问题就出现了。比如说,我需要从周五早上5点到周五的最后三个“星期五”。开始认为我没有足够好地描述我的问题 - 将编辑。 – badgley
没问题,遗憾的是错过了目标。困难的部分似乎是调整数据。既然解决了,那么下一个问题就是:如何获取Y天的最后一个X实例? ''df [df.index.dayofweek == Y] .ix [-X:]''工作吗? – Garrett
这对我不起作用 - 这里的问题解决了我的核心问题。当你按照dayofweek进行筛选时,你可以做到这一点,因此你无法达到[上午12点DayofWeek1,上午12点DayofWeek2]定义的'整个'日子。 – badgley