【发布时间】:2021-06-07 14:57:20
【问题描述】:
我有一个包含时间戳和能源使用列的数据框。时间戳记为一天中的每一分钟,即每天总共有 1440 个读数。数据框中的缺失值很少。
我想用过去两到三周的同一天、同一时间的平均值来估算这些缺失值。这样,如果前一周也缺失,我可以使用两周前的值。
以下是数据示例:
mains_1
timestamp
2013-01-03 00:00:00 155.00
2013-01-03 00:01:00 154.00
2013-01-03 00:02:00 NaN
2013-01-03 00:03:00 154.00
2013-01-03 00:04:00 153.00
... ...
2013-04-30 23:55:00 NaN
2013-04-30 23:56:00 182.00
2013-04-30 23:57:00 181.00
2013-04-30 23:58:00 182.00
2013-04-30 23:59:00 182.00
现在我有这行代码:
df['mains_1'] = (df
.groupby((df.index.dayofweek * 24) + (df.index.hour) + (df.index.minute / 60))
.transform(lambda x: x.fillna(x.mean()))
)
因此,它使用了整个数据集当天同一小时的平均使用量。我希望它更精确,并使用过去两三周的平均值。
【问题讨论】:
标签: python pandas time-series missing-data