学习、应用Python 2024-02-15 12:29 采纳率: 62.5%
浏览 4
已结题

pandas的pd.to_datetime函数有bug,是什么原因?怎么办?请问

import pandas as pd

time_1 = '08:00:00.500'
time_1 = pd.to_datetime(time_1)
print(time_1)

打印结果:(多次运行)

时而是:2024-02-15 08:00:00

时而是:2024-02-15 08:00:00.500000

  • 写回答

4条回答 默认 最新

  • 叫兽-郭老师 Java领域新星创作者 2024-02-15 12:30
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    pd.to_datetime 函数本身并没有明显的bug,但是从您描述的现象来看,这个问题可能并不是函数本身的错误,而是由于解析逻辑和输入格式不明确导致的。

    当您提供给 pd.to_datetime 的字符串 '08:00:00.500' 时,默认情况下,pandas会尝试将其解析为日期时间对象,但由于缺少年月日信息,pandas会填充当前日期(在您的情况中是2024年2月15日)来创建完整的日期时间对象。

    对于时间部分,.500 表示的是微秒级别的时间精度,因此正确的输出应该是包含 .500000 微秒的。

    打印结果不稳定的情况可能是因为:

    1. 运行环境的当前日期变化:因为没有指定具体的日期,所以每次运行时如果系统当前日期不同,组合出来的完整日期时间也会不同。
    2. 版本或内部实现差异:虽然不太可能是bug,但在不同的pandas版本中,对于这种缺失日期部分的时间字符串处理逻辑可能会有所调整。

    要确保稳定的结果,请始终指定完整的日期时间字符串,或者通过添加参数明确解析格式。例如:

    import pandas as pd
    
    time_1 = '08:00:00.500'
    # 指定格式,同时强制加上今天的日期
    time_1 = pd.to_datetime('2024-02-15 ' + time_1, format='%Y-%m-%d %H:%M:%S.%f')
    print(time_1)
    

    这样无论何时运行,只要当天是2024年2月15日,都会得到稳定的输出结果 2024-02-15 08:00:00.500000

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme