熊猫下采样问题

时间:2013-04-04 20:35:19

标签: python pandas downsampling

我有一个csv文件,其中两列包含日期,0或1如下:

17/08/2012 07:47:16 0
17/08/2012 07:54:31 1
17/08/2012 08:02:31 0
17/08/2012 09:22:33 0
17/08/2012 09:58:05 0
17/08/2012 12:26:59 1
17/08/2012 20:56:00 0
18/08/2012 10:04:06 0
18/08/2012 10:42:52 0
20/08/2012 07:22:02 0
20/08/2012 07:54:28 0
20/08/2012 08:01:58 0
20/08/2012 08:16:31 1
20/08/2012 08:26:38 0
20/08/2012 08:55:19 1
20/08/2012 09:00:09 0 
20/08/2012 09:26:11 0
20/08/2012 09:50:10 0
20/08/2012 10:33:37 0
20/08/2012 10:39:13 0
20/08/2012 10:39:35 1
20/08/2012 11:15:07 1
20/08/2012 11:19:15 0
20/08/2012 11:21:01 0

我将此文件加载到DataFrame raw_data中,然后将索引更改为Timestamp:

ts_data=raw_data.set_index(pd.to_datetime(raw_data.when_created,dayfirst=True))

然后我尝试使用以下方法对数据进行缩减采样:

daily_conversions=ts_data.resample('D',how='sum')

它适用于所有日子(超过7个月,这里我只包括一个子集),除了有一天我得到这个输出:

2012-08-20 NaN

从数据中可以看出这没有意义。有趣的是,如果我使用更高频率(例如'h')进行下采样,我会在特定日期得到正确的结果。对于存在的小时数而言,我得到的小时值为0小时,但只有0和a正确的小时数,但是== 1。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

经过上面的有益评论,我意识到出了什么问题。这只是一个标签问题。所以实际上应该返回NaN的日期是19,但是默认设置是label ='right'所以它显示为20。当我添加label ='left'时它工作正常。感谢