如何填补时间序列上缺失的消费数据?

数据挖掘 Python 时间序列 缺失数据
2022-03-11 22:24:01

我有一个包含消费的数据集。这些消耗量每月测量一次。但有些月份没有测量。因此,未测量月份之后的测量月份实际上值得两个月(或更多)的总和。

我的数据集;

            difference
date    
2019-01-01  50.0
2019-02-01  60.0
2019-03-01  NaN
2019-04-01  140.0
2019-05-01  90.0

所以我们可以理解,第 4 个月的值实际上是第 3 个月和第 4 个月的总和。有必要用这种逻辑组织这些数据。因为 140 不是第 4 个月的正确值,并且第 3 个月的消耗不为零。

            difference
date    
2019-01-01  50.0
2019-02-01  60.0
2019-03-01  70.0
2019-04-01  70.0
2019-05-01  90.0

这(平均值)可能是避免数据集上出现此问题的一种方法。之后,我可以使用这个数据集来预测下个月的消费。

我想知道这种方法是否有名字。我可以在这种类型的时间序列数据集上实施哪些解决方案?我该如何搜索这个问题?

1个回答

您尝试描述的方法是能够fill弥补数据中的空白。

在数据中填写 N/A

由于您使用的是 Python,我猜您的数据存储为 Dataframe。Pandas 对此有一个特定的功能:DataFrame.fillna().

这使您可以使用多种方法填充任何NaN值。

这个答案中有一些类似的例子

填写 N/A 并更改以下项目

据我所知,Dataframes 还没有任何功能可以做到这一点。

我能想到的最佳选择是遍历该系列。.tolist()您可以使用for循环转换为列表,也可以使用Series.iteritems()

在您的循环中,您需要一个条件来检查是否NaN,如果是,则取当前项目和下一个项目的平均值,如果当前项目是 NaN. 如果列表中的最终值为NaN