我有一个有很多缺失值的数据集,时间间隔是5分钟,但是,还有很多缺少的时间戳。 Dataframe看起来像这样:
Time A
2000-01-01 00:00:00 NaN
2010-01-01 00:00:00 NaN
2015-01-01 00:00:00 NaN
2015-12-01 00:00:00 NaN
2015-12-01 12:40:00 NaN
2015-12-01 12:45:00 NaN
df.dropna().head(6)
Time A
2015-12-04 11:50:00 1.0
2016-04-11 16:15:00 1.0
2016-04-11 16:25:00 1.0
2016-04-29 22:05:00 1.0
2016-07-01 14:25:00 1.0
2016-07-23 21:20:00 1.0
我想在不更改索引的情况下将缺失值填充10天。我使用了这个命令,但结果没有变化。
#fill the missing data
df_filled=df.groupby(df.index).fillna(method='bfill', limit=12*240)
df_filled.dropna().head(6)
Time A
2015-12-04 11:50:00 1.0
2016-04-11 16:15:00 1.0
2016-04-11 16:25:00 1.0
2016-04-29 22:05:00 1.0
2016-07-01 14:25:00 1.0
2016-07-23 21:20:00 1.0
如果有人能指导我,我感激不尽。
提前致谢。
来自df的一个值的快照:
12/4/2015 11:15 NaN
12/4/2015 11:20 NaN
12/4/2015 11:25 NaN
12/4/2015 11:30 NaN
12/4/2015 11:35 NaN
12/4/2015 11:40 NaN
12/4/2015 11:45 NaN
12/4/2015 11:50 1
我想要将数据回填最多10天,因此对于相同的数据点应该是:
12/4/2015 11:15 1
12/4/2015 11:20 1
12/4/2015 11:25 1
12/4/2015 11:30 1
12/4/2015 11:35 1
12/4/2015 11:40 1
12/4/2015 11:45 1
12/4/2015 11:50 1
答案 0 :(得分:1)
我找到了一个有效的解决方案:
df_filled=df.groupby(pd.Grouper(freq='10D')).fillna(method='bfill')