您如何管理数据框中丢失的日期?
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
模块。请注意,NaT
由 datetime.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
我有一个包含多列日期的数据框,我想使用 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
模块。请注意,NaT
由 datetime.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