Pandas,处理“越界时间戳…”

2024-04-26 00:43:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个df,其中某些功能作为对象类型,我想转换为日期类型。当我试图用pd.to_日期时间,其中一些功能会返回“超出范围的时间戳”错误消息。为了解决这个问题,我添加了“errors=forcet”参数,然后试图删除所有结果的NAs。例如:

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

然而,这似乎并没有将特性转换为“datetime:”(“maturity”是我试图转换为datetime的date_特性之一)。在

^{pr2}$

此外,如果我再次尝试使用pd.to_日期时间没有“强制”我就得到了“越界”时间戳。在

我希望我已经详细地描述了这个问题。在

有什么想法吗?在


Tags: to对象功能true类型dfdatetimedate
1条回答
网友
1楼 · 发布于 2024-04-26 00:43:40

pd.to_datetime不是就地操作。代码执行转换,并继续丢弃结果。正确的做法是把结果分配回来,就像这样-

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

此外,不要对属于数据帧的列调用dropna,因为这不会修改数据帧(即使使用inplace=True)。相反,使用subset属性对数据帧调用dropna

^{pr2}$

现在,正如所观察到的,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,这意味着这个操作起作用了。{em>作为一个标准的调用返回一个新的结果。这个系列的显示方式与其他系列相同,包括应用于itdtype描述,而不是它所描述的列。在

相关问题 更多 >