如何用日期减法填充数据帧中的nan记录



我的数据框有两列:Date_created和Date_closed。如果Date_closed为NaN,则表示案件仍未结案。

我想引入一个名为Days_to_close的新列,它表示Date_closed和Date_created之间的天数差。

运行以下代码后:

DF['Days_to_close']=DF['Date_Closed']-DF['Date_Created']

Pandas为所有已关闭的情况返回Days_to_close,留下打开的情况NaN,因为Date_Closed是NaN。

然后我想用今天的日期减去Date_Created来填充那些打开的案例的Days_to_close,所以我写了下面的代码:

today = datetime.date.today()
DF['Days_to_close'].fillna(today- DF['Date_Created'])

然而,我得到以下错误信息:unsupported operand type(s) for -: 'DatetimeArray' and 'datetime.date'

我还尝试通过

为今天创建一个数据框架
today = datetime.date.today()
todaydf = pd.Dataframe({today})

错误信息变为:cannot subtract DatetimeArray from ndarray

我该如何克服这个问题?我是否需要通过循环检查每个NaN记录&If语句并分别填写?由于

我建议您先填写NaN值,然后计算之后的差异(确保日期列被解析为datetime)。

我假设你正在从csv中读取,在我的日期解析示例中,它可以是你使用的任何格式。

import pandas as pd
df = pd.read_csv("filepath", parse_dates=['Date_Created', 'Date_Closed'])
df['Date_Closed'].fillna(pd.to_datetime("today"), inplace=True)
#df['Date_Closed'] = df['Date_Closed'].fillna(pd.to_datetime("today"), inplace=True)
df['Days_to_close'] = df['Date_Closed']- df['Date_Created']

希望对你有帮助。

相关内容

  • 没有找到相关文章

最新更新