首页 > 解决方案 > 熊猫填充以前日期的连续空日期值+恒定天数

问题描述

我有一个包含数据列的数据框

Comp_date
0 2020-04-24
1        NaT
2        NaT
3        NaT
4 2020-08-06
5        NaT
6        NaT
7        NaT
8 2020-08-22
9        NaT

我正在尝试用前一个日期的值填充空值+添加一个恒定的天数(10)。但我无法这样做。我尝试了以下

df['Comp_date']=df['Comp_date'].fillna((df['Comp_date'].shift()+pd.to_timedelta(10, unit='D')), inplace=True)

什么都没有发生,我得到了同样的结果。有什么帮助吗?预期结果

    Comp_date
0   2020-04-24
1   2020-05-04
2   2020-05-14
3   2020-05-24
4   2020-08-06
5   2020-08-16
6   2020-08-26
7   2020-09-05
8   2020-08-22
9   2020-09-01

标签: pythonpandasdataframe

解决方案


我不清楚你的问题,但这会在最后一次观察到的天数上增加一个恒定的天数Comp_date

constant_number_of_days = 2
df2 = df['Comp_date'].ffill().to_frame()
df2.loc[df['Comp_date'].isnull(), 'Comp_date'] += pd.Timedelta(days=constant_number_of_days)
>>> df2
   Comp_date
0 2020-04-24
1 2020-04-26
2 2020-04-26
3 2020-04-26
4 2020-08-06
5 2020-08-08
6 2020-08-08
7 2020-08-08
8 2020-08-22
9 2020-08-24

推荐阅读