【问题标题】:Convert column to datetime format, in a leap year在闰年将列转换为日期时间格式
【发布时间】:2020-10-15 13:53:36
【问题描述】:

我是 Python 和一般编程的新手,所以我无法弄清楚以下内容:我有一个名为 ozon 的数据框,其中第 1 列是 mm-dd 格式的时间戳。现在我想使用以下代码将该列更改为日期时间格式:

ozon[1] = pd.to_datetime(ozon[1], format='%m-%d')

现在这给了我以下错误:ValueError: day is out of range for month。 我认为这与闰年有关,因此它不承认 2 月 29 日为有效日期。我该如何克服这个错误?我还可以在时间戳(2020 年)上添加一年吗? 提前非常感谢!

【问题讨论】:

  • 一般来说,用你的月份和日期存储一年是个好主意——你刚刚找到了原因;-) 现在解决这个问题,假设索引 1 处的 col 是 dtype 字符串,你应该可以简单地将年份作为字符串添加:pd.to_datetime('2020-'+ozon[1], format='%Y-%m-%d').

标签: python pandas datetime


【解决方案1】:

将年份添加到列以及format

ozon[1] = pd.to_datetime(ozon[1] + '-2000', format='%m-%d-%Y')

如果由于某些值无效而仍然无法正常工作,请添加 errors='coerce' 参数:

ozon[1] = pd.to_datetime(ozon[1] + '-2000', format='%m-%d-%Y', errors='coerce')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 2015-06-17
    • 2021-07-04
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多