我有一个包含两列日期和0或1的csv文件,如下所示:
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,对于存在但==1的小时,我得到了一个正确的总和。
发布于 2013-04-05 14:32:09
在上面的一个有用的评论之后,我意识到哪里出了问题。这只是一个标签的问题。所以实际上,应该返回NaN的日期是19日,但是默认设置是label='right‘,所以它显示为20日。当我添加label='left‘时,它工作得很好。谢谢
https://stackoverflow.com/questions/15821194
复制相似问题