获取每日/每周/每小时数据的pandas数据框

时间:2016-11-06 04:16:44

标签: datetime pandas dataframe time-series

我有一个pandas数据框,索引= datetime.datetime(年,月,日,小时,分钟)

我希望能够使用它来获取每小时/每日/每周数据,其中每小时数据将是与框架中每小时相对应的最后一个条目。

有没有内置的方法来做到这一点?我试过制作案例,例如在每日数据的情况下,我将小时和分钟输入更改为零,但我仍然在同一天有一个包含多个条目的数据框。我怎样才能获得与每一天相对应的最后一个条目?

示例数据框:

         index                x          y
2016-01-01 00:07:00-05:00   1.000      0.000
2016-01-01 00:10:00-05:00   1.000      0.000
2016-01-01 00:15:00-05:00   1.000      0.000
2016-01-01 00:16:00-05:00   1.000      0.000
2016-01-01 00:20:00-05:00   1.000      0.000
2016-01-01 00:21:00-05:00   1.000      0.000
2016-01-01 00:26:00-05:00   1.000      0.000
2016-01-01 00:31:00-05:00   1.000      0.000
2016-01-01 00:37:00-05:00   1.000      0.000
2016-01-01 00:40:00-05:00   1.000      0.000
2016-01-01 00:46:00-05:00   1.000      0.000
2016-01-01 00:51:00-05:00   1.000      0.000
2016-01-01 00:56:00-05:00   1.000      0.000
2016-01-03 19:26:00-05:00   1.000      0.000
2016-01-03 19:34:00-05:00   1.000      0.000
2016-01-03 20:02:00-05:00   1.000      0.000
2016-01-03 20:06:00-05:00   1.000      0.000
2016-01-03 20:07:00-05:00   1.000      0.000
2016-01-03 20:08:00-05:00   1.000      0.000
2016-01-03 20:10:00-05:00   1.000      0.000
2016-01-03 20:11:00-05:00   1.000      0.000
2016-01-03 20:12:00-05:00   1.000      0.000
2016-01-03 20:13:00-05:00   1.000      0.000

1 个答案:

答案 0 :(得分:2)

假设我理解你的问题(看一些代码示例会很有帮助),听起来你可以使用resample:

df.resample('D', how='sum')

它的工作方式类似于groupby或数据透视表:

  

DataFrame.resample(规则,how = None,axis = 0,fill_method = None,   closed = None,label = None,convention ='start',kind = None,loffset = None,   limit = None,base = 0)频率转换的便捷方法   重新采样常规时间序列数据。

     

参数:rule:string表示的偏移字符串或对象   目标转换轴:int,可选,默认0关闭:{'right',   'left'} bin间隔的哪一边是封闭标签:{'right','left'}   使用约定标记存储桶的bin边缘标签:{'start',   'end','s','e'} loffset:timedelta调整重采样时间标签   base:int,default 0对于均匀细分1天的频率,   聚合间隔的“起源”。例如,'5min'   频率,基数范围从0到4.默认为0