我想将dtype更改为datetime。我使用parse_dates进行转换,但它不起作用。
import pandas as pd
import altair as alt
import numpy as np
t_data = pd.read_csv('../TreesEdmonton.csv', parse_dates = ['PLANTED_DATE'])
t_dataThis shows the data has been transformed
t_data.info() shows the dtype still object
以下是下载csv文件https://data.edmonton.ca/Environmental-Services/Trees/eecg-fc54/data的链接
如果有人能帮助我,我将不胜感激。
发布于 2021-09-06 22:46:38
如果parse_dates不能解析日期,它将悄悄地失败。
加载数据帧后,您可以通过手动解析日期来查看错误:
>>> pd.to_datetime(df.PLANTED_DATE)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
...
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1190-05-25 00:00:00dataset中有几个条目的日期对于默认datetime64表示形式来说太旧了。
解决这个问题的一种方法是使用errors='coerce',它将用NaT取代有问题的时间
>>> df.PLANTED_DATE = pd.to_datetime(df.PLANTED_DATE, errors='coerce')
>>> df.PLANTED_DATE.dtype
dtype('<M8[ns]')它现在有了一个类似日期的数据类型。
https://stackoverflow.com/questions/69067470
复制相似问题