0

我有一个包含日期和 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 的小时的正确总和。请问有什么想法吗?

4

1 回答 1

0

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

于 2013-04-05T06:32:09.083 回答