我有一个数据框DF
,其中包含2个日期列(对象数据类型),格式如下:
date_column1 date_column2
2021-08-14 2021-09-19
2021-10-11 2021-11-02
2019-09-15 2021-10-25
... ...
我想插入一个基于以下内容的新列:
DF['date_new'] = DF['date_column2'] + (DF['date_column2']-DF['date_column1'])
代码可以工作,但我得到以下警告
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\arrays\datetimelike.py:1190:
PerformanceWarning: Adding/subtracting object-dtype array to TimedeltaArray not vectorized
我应该如何调整我的代码来修复这个警告?
发布于 2021-10-20 10:46:27
用您的示例数据模拟,当您的date_column1
是string类型,而date_column2
是datetime类型时,就会发生这种情况。其他组合会产生其他类型的错误。当两者都是datetime类型时,不会出现错误。
您可以通过将date_column1
也转换为datetime类型来通过警告,如下所示:
DF['date_column1'] = pd.to_datetime(DF['date_column1'])
# or to play safe, also convert `date_column2`
DF['date_column2'] = pd.to_datetime(DF['date_column2'])
在此之后,您将会得到如下成功的结果,没有任何警告:
0 2021-10-25
1 2021-11-24
2 2023-12-05
dtype: datetime64[ns]
https://stackoverflow.com/questions/69644304
复制相似问题