我给定一列作为类型对象,并希望将其转换为日期时间:
DataFrame: df
列:日期
值格式: 1880-01-01T00:00:00.000
Dtype:对象
这样做时:
df['date'] = pd.to_datetime(dt['date'])
我得到了错误: 超出范围的纳秒级时间戳:1583-01-01 00:00:00
即使指定了格式:
df['date'] = pd.to_datetime(df['date'], format = '%Y-%m-%dT%H:%M:%S.%f')
我遇到了相同的错误,知道为什么会发生该错误以及如何解决该错误?
答案 0 :(得分:1)
使用1880-01-01T00:00:00.000
,它应该可以工作。
但是从您的错误消息中,您的值似乎是1583-01-01T00:00:00.000
,并且超出了pandas timestamps representation range。
以纳秒分辨率表示,可以使用64位整数表示的时间跨度限制为大约584年,即:
print(pd.Timestamp.min)
Output: 1677-09-21 00:12:43.145225
print(pd.Timestamp.max)
Output: 2262-04-11 23:47:16.854775807
但是,如果您的值为1880-01-01T00:00:00.000
,请指定以下格式:
df['date'] = pd.to_datetime(df['date'])
,
当我打印df['date']
时,我得到:
1880-01-01 00:00:00
Name: date, dtype: datetime64[ns]