熊猫,处理"Out of bounds timestamp..."



我的DF具有某些功能作为对象类型,我想将其转换为数据型。当我尝试使用PD.TO_DATETIME转换时,其中一些功能会返回"超出时间戳"错误消息。为了解决这个问题,我添加了"错误= coerce"参数,然后寻求删除所有结果。例如:

pd.to_datetime(df[date_features], infer_datetime_format = True, errors = 'coerce')
df[date_features].dropna(inplace= True)

然而,这似乎并没有将功能转换为'dateTime:'(" Maturity_date"是我尝试转换为DateTime的date_features之一)。

df.[maturity_date].describe()
count        3355323
unique         11954
top       2015-12-01
freq           29607
Name: maturity_date, dtype: object

此外,如果我再次尝试使用pd.to_datetime转换成熟_date,而无需" coerce",我会得到"限制"时间戳。

我希望我已经彻底描述了这个问题。

有什么想法吗?

pd.to_datetime不是一个内置操作。您的代码执行转换,并继续丢弃结果。正确的做法是将结果分配回去,例如 -

df['date_features'] = pd.to_datetime(df.date_features, errors='coerce')

此外,请勿在属于数据框的列上调用dropna,因为这不会修改数据框架(即使使用inplace=True)。相反,用subset属性在 dataFrame上调用dropna -

df.dropna(subset='date_features', inplace=True)

现在,如所观察到的, maturity_date看起来像这样 -

results["maturity_date"].head()
0   2017-04-01
1   2017-04-01
2   2017-04-01
3   2016-01-15
4   2016-01-15
Name: maturity_date, dtype: datetime64[ns]

如您所见,dtypedatetime64,这意味着此操作有效。如果您调用describe(),它将执行一些标准聚合,并将结果返回为a new系列。该系列的显示方式与其他任何方式相同,包括适用于 it dtype描述,而不是它所描述的列。

最新更新