【问题标题】:Python Pandas datetime set_index gives unexpected resultsPython Pandas datetime set_index 给出了意想不到的结果
【发布时间】:2024-01-23 04:39:01
【问题描述】:

我有一个看起来像 like this 的数据框:

我想将“TIME_STAMP_NEW”列作为索引。当前代码:

twoweektable['TIME_STAMP_NEW'] = pd.to_datetime(twoweektable['TIME_STAMP_NEW'])
twoweektable.set_index('TIME_STAMP_NEW',inplace=True)

但是,结果索引看起来like this

关于为什么会有意外的“T”和第二个小数的任何想法?

【问题讨论】:

    标签: python pandas datetime indexing


    【解决方案1】:

    我假设原始列是一个字符串。通常 pandas 将字符串转换为纳秒的完整日期(单位参数的默认参数)。

    你可以试试添加

    pd.to_datetime(twoweektable['TIME_STAMP_NEW'], unit='s')
    

    这将删除纳秒标记。

    【讨论】:

    • 感谢您的重播,我尝试在转换为日期时间格式时添加 unit = 's',但仍然有 'T' 和小数
    【解决方案2】:

    “T”是告诉熊猫在哪里分隔日期和时间的分隔符。它是ISO-8601 standard 的一部分,无论您打算如何使用时间戳,pandas 的解释都不应成为问题。

    要去除尾随小数,请尝试格式化为秒分辨率,然后四舍五入到最接近的秒:

    pd.to_datetime("twoweektable['TIME_STAMP_NEW']",format="%Y-%m-%d %H:%M:%S").round('s')
    

    【讨论】: