【发布时间】:2019-11-17 22:06:39
【问题描述】:
我似乎无法将包含日期字符串的系列转换为 dtype 或 datetime64。
以下代码重现了错误:
import pandas as pd
gud_date_s = pd.Series(["2019/12/31 00:00:00.0"]*100)
gud_date_s2 = pd.Series(["2261/12/31 00:00:00.0"]*100)
bad_date_s = pd.Series(["9999/12/31 00:00:00.0"]*100)
bad_date_s2 = pd.Series(["2262/12/31 00:00:00.0"]*100)
gd1 = pd.to_datetime(gud_date_s, format="%Y/%m/%d", yearfirst=True).dt.date # Correct
gd2 = pd.to_datetime(gud_date_s2 , format="%Y/%m/%d", yearfirst=True).dt.date # Correct
bd1 = pd.to_datetime(bad_date_s, format="%Y/%m/%d", yearfirst=True).dt.date
#Returns {ValueError}time data 9999/12/31 00:00:00.0 doesn't match format specified.
bd2 = pd.to_datetime(bad_date_s2 , format="%Y/%m/%d", yearfirst=True).dt.date
#Returns {ValueError}time data 2262/12/31 00:00:00.0 doesn't match format specified.
所以接受年份的阈值似乎是2261。为什么?我该如何解决这个问题?
注意:9999/12/31 等日期是相关的,因此我想保持原样。
干杯
【问题讨论】:
标签: python python-3.x pandas datetime datetime-format