使用Pandas进行DateTime的四舍五入

4

我希望将一个DateTime特征四舍五入,使其转换为每10分钟时间间隔的起始值。以下示例显示所需结果:

     Actual Time              |        Round Time(within 10 min interval)


  2016-01-01 05:47:46                      2016-01-01 05:40:00
  2016-01-01 05:49:58                      2016-01-01 05:40:00
  2016-01-01 05:50:01                      2016-01-01 05:50:00
  2016-01-01 05:59:58                      2016-01-01 05:50:00  

下面的代码将时间舍入到最近的10分钟间隔,而不是始终给出底部值。

df['DateTime'].agg(lambda x : x.round('10min'))

它将日期时间特征四舍五入到最接近的值。

   Actual Time              |        Round Time(within 10 min interval)

  2016-01-01 05:47:46                      2016-01-01 05:50:00
  2016-01-01 05:49:58                      2016-01-01 05:50:00
  2016-01-01 05:50:01                      2016-01-01 05:50:00
  2016-01-01 05:59:58                      2016-01-01 06:00:00  

将时间舍入到靠近最小值的方式。


1
不太清楚,请在您的帖子中更加明确。 - RavinderSingh13
1个回答

11

使用Series.dt.floor函数:

df['Round Time'] = df['DateTime'].dt.floor('10min')

@RavinderSingh13 - 谢谢。引发了什么样的错误? - jezrael
当然,这里出现了错误 AttributeError: Can only use .dt accessor with datetimelike values - RavinderSingh13
1
@RavinderSingh13 - 你需要在第一步将列转换为日期时间。 - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接