pd.Round返回奇怪的值



我的数据子集如下:

print(test)
                         created_at
29100988  2020-06-01 00:03:49+00:00
29100989  2020-06-01 00:03:42+00:00
29100990  2020-06-01 00:03:41+00:00
29100991  2020-06-01 00:03:37+00:00
29100992  2020-06-01 00:03:36+00:00
29100993  2020-06-01 00:03:36+00:00
29100994  2020-06-01 00:03:31+00:00
29100995  2020-06-01 00:03:17+00:00
29100996  2020-06-01 00:03:17+00:00
29100997  2020-06-01 00:03:12+00:00

现在我想使用以下代码将列created_at四舍五入到minutes:

test['created_at_Min'] = pd.to_datetime(test['created_at']).dt.round("1Min")

这会产生以下结果:

                         created_at            created_at_Min
29100988  2020-06-01 00:03:49+00:00 2020-06-01 00:04:00+00:00
29100989  2020-06-01 00:03:42+00:00 2020-06-01 00:04:00+00:00
29100990  2020-06-01 00:03:41+00:00 2020-06-01 00:04:00+00:00
29100991  2020-06-01 00:03:37+00:00 2020-06-01 00:04:00+00:00
29100992  2020-06-01 00:03:36+00:00 2020-06-01 00:04:00+00:00
29100993  2020-06-01 00:03:36+00:00 2020-06-01 00:04:00+00:00
29100994  2020-06-01 00:03:31+00:00 2020-06-01 00:04:00+00:00
29100995  2020-06-01 00:03:17+00:00 2020-06-01 00:03:00+00:00
29100996  2020-06-01 00:03:17+00:00 2020-06-01 00:03:00+00:00
29100997  2020-06-01 00:03:12+00:00 2020-06-01 00:03:00+00:00

如你所见,当时间"00:03:17+00:00"正确四舍五入为"00:03:00+00:00",时间戳"00:03:31+00:00";四舍五入为"00:04:00+00:00"。同样的问题每隔几个小时就会出现,而我完全不知道我做错了什么。

谢谢你的帮助!

我找到了解决方案,使用test['created_at_Min'] = pd.to_datetime(test['created_at']).dt.floor("min")代替所需的工作。

最新更新