如何将熊猫中的对象类型列转换为日期时间

时间:2020-03-16 17:52:34

标签: python pandas

我给定一列作为类型​​对象,并希望将其转换为日期时间:

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')

我遇到了相同的错误,知道为什么会发生该错误以及如何解决该错误?

1 个答案:

答案 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]