我似乎无法将包含日期字符串的序列转换为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
这样的日期是相关的,因此我想保持原样。你知道吗
干杯
这里的值year
9999
无效,因此转换为NaT
需要errors='coerce'
:这里有一个引发的错误,因为limit,年份是正确的,但是最大的月份和日期只有
11th April
:不幸的是,这里的错误应该更清楚。你知道吗
使用datetimes时会引发错误:
相关问题 更多 >
编程相关推荐