您如何管理数据框中丢失的日期?

How do you manage missing date in a dataframe?

我有一个包含多列日期的数据框,我想使用 toordinal 方法将其转换为整数,但缺少一些日期,我想知道如何管理它们以便能够进行转换。

我试过了:

dates['date'].apply(lambda x: x.toordinal())

我有错误:

ValueError: NaTType does not support toordinal

另一种选择是

dates['date'].apply(lambda x: x.toordinal() if pd.notna(x) else 0)

您可以使用datetime模块。请注意,NaTdatetime.toordinal 转换为 1。如果您愿意,您可以在一个单独的步骤中将其替换为您选择的值。

来自@jezrael 的数据。

from datetime import datetime

rng = pd.date_range('2017-04-03', periods=5)
dates = pd.DataFrame({'date': rng}) 
dates.loc[6, 'date'] = np.nan

dates['date_ordinal'] = dates['date'].apply(datetime.toordinal)

print(dates)

        date  date_ordinal
0 2017-04-03        736422
1 2017-04-04        736423
2 2017-04-05        736424
3 2017-04-06        736425
4 2017-04-07        736426
6        NaT             1