Pandas 大熊猫的奔跑日期

Pandas 大熊猫的奔跑日期,pandas,Pandas,我有一个数据框,其中包含一列日期和值,如下所示: date value 2019-01-01 10 2019-01-02 15 NaT 20 NaT 30 2019-01-05 40 2019-01-06 45 在没有预定义的2019-01-03和2019-01-04的情况下,如何自动填充NaT?如果没有重复的排序日期时间和正确放置的缺失值,并且第一个和最后一个值没有缺失,则可以分配由以下人员创建的值: 另一个想法是为所有丢失的组

我有一个数据框,其中包含一列日期和值,如下所示:

date       value
2019-01-01   10
2019-01-02   15
NaT          20
NaT          30
2019-01-05   40
2019-01-06   45

在没有预定义的2019-01-03和2019-01-04的情况下,如何自动填充NaT?

如果没有重复的排序日期时间和正确放置的缺失值,并且第一个和最后一个值没有缺失,则可以分配由以下人员创建的值:

另一个想法是为所有丢失的组创建时间增量范围,并使用
ffill
添加到最后一个未丢失的日期时间:

m = df['date'].isna()
s = pd.to_timedelta(df[m].groupby(m.ne(m.shift()).cumsum()).cumcount().add(1), unit='d')
df.loc[m, 'date'] = df['date'].ffill() + s
print (df)
        date  value
0 2019-01-01     10
1 2019-01-02     15
2 2019-01-03     20
3 2019-01-04     30
4 2019-01-05     40
5 2019-01-06     45
m = df['date'].isna()
s = pd.to_timedelta(df[m].groupby(m.ne(m.shift()).cumsum()).cumcount().add(1), unit='d')
df.loc[m, 'date'] = df['date'].ffill() + s
print (df)
        date  value
0 2019-01-01     10
1 2019-01-02     15
2 2019-01-03     20
3 2019-01-04     30
4 2019-01-05     40
5 2019-01-06     45