当前位置: 首页 > 面试题库 >

如何将日期时间列四舍五入到最近的四分之一小时

房光临
2023-03-14
问题内容

我已经将数据文件加载到Python pandas数据框中。我有一个格式的datetime列2015-07-18 13:53:33.280

我需要做的是创建一个新列,将其四舍五入到最接近的四分之一小时。因此,上述日期将四舍五入为2015-07-18 13:45:00.000

如何在熊猫中做到这一点?我尝试从此处使用解决方案,但出现'Series' object has no attribute 'year'错误。


问题答案:

假设您的系列由datetime对象组成,则需要使用Series.apply。范例-

import datetime
df['<column>'] = df['<column>'].apply(lambda dt: datetime.datetime(dt.year, dt.month, dt.day, dt.hour,15*(dt.minute // 15)))

上面的示例始终四舍五入到前一个四分之一小时(行为类似于发言权功能)。

编辑

四舍五入到正确的四分之一小时(例如,如果它比上一个四分之一晚7分30秒,则显示下一季度)。我们可以使用以下示例-

import datetime
df['<column>'] = df['<column>'].apply(lambda dt: datetime.datetime(dt.year, dt.month, dt.day, dt.hour,15*round((float(dt.minute) + float(dt.second)/60) / 15)))

上面只考虑了最近的秒,如果要考虑毫秒/微秒,则可以将其添加到上面的公式中,如下所示:(float(dt.minute) +float(dt.second)/60 + float(dt.microsecond)/60000000)



 类似资料:
  • 问题内容: 考虑到今天的时间,例如2:24 PM,我如何将其舍入为2:30 PM? 同样,如果时间是2:17 PM,如何将其舍入为2:15 PM? 问题答案: 四舍五入 您将需要使用取模来截断四分之一小时: 正如EJP所指出的,这也是可以的(替换最后一行,仅在日历宽松时有效): 改进之处 如果要精确,则还必须截断较小的字段: 您还可以使用DateUtils.truncate()从Apache的共享

  • 问题内容: 我要求将datetime2值四舍五入到最近的半小时。例如,“ 10/17/2013 12:10:00.123”将四舍五入为“ 10/17/2013 12:00:00.0”,而“ 10/17/2013 12:34:17.123”将四舍五入为10/17 / 2013 12:30:00.0’。我的第一个想法是创建一个UDF,它将日期和时间分开,并以这种方式进行。但是,我想知道是否可以在单个T

  • 问题内容: 如何在MySQL中将时间舍入到最接近的15分钟(例如0、15、30、45)? 问题答案: 在此示例中,我使用CURTIME()作为输入时间,但是您可以使用任何时间字段。 900秒= 15分钟(四舍五入的时间),450秒是(提供四舍五入元素的)一半。我已经用1800/900测试了最近的半小时,应该与其他人一起工作(600/300持续10分钟等)。

  • 问题内容: 因此,我需要创建以下函数,但是如果不进行复杂的数学运算,我的头将无法想到PHP中的任何可能性。 轮 始终 到最接近的十进制(1.81 = 1.90,1.89 = 1.90,1.85 = 1.90) 总是 四舍五入到最接近的小数点(1.81 = 1.80,1.89 = 1.80,1.85 = 1.80) 轮 始终 到最接近的X.25 / X.50 / X.75 /×.00(1.81 =

  • 问题内容: 我来到了Java程序的一部分,我需要四舍五入到最接近的百位数,并认为可能有某种方法可以做到这一点,但我想没有。因此,我在网上搜索了示例或任何答案,但由于所有示例看起来都接近最接近的一百,因此至今仍未找到任何答案。我只想这样做并向上取整。也许有一些我忽略的简单解决方案。我已经尝试了其他功能,但到目前为止还没有找到答案。如果有人可以帮助我解决这个问题,我将不胜感激。 如果我的电话号码是20

  • 问题内容: 我们如何在php中将数字四舍五入到最接近的10? 说我有,我将使用什么代码将其四舍五入? 问题答案: 会下降。 会上升。 默认情况下会最接近。 除以10,得到ceil,然后乘以10以减少有效数字。 编辑:我已经这样做了很长时间..但是TallGreenTree的答案是更干净。