python - Python 中 Google Analytics 数据的数据插补

标签 python dataframe scikit-learn missing-data imputation

我有来自网站的 Google Analytics(分析)数据集,我计划对其进行分析以用于项目。然而,由于维护和其他因素,有大量日期没有数据。我想估算这些数据,同时仍然保持数据的完整性,因为我计划绘制这些数据集并随着时间的推移比较不同数据集的曲线。

Example

我想使用距离每个缺失数据点最近的有效数据点来估算该值,以保持从图像中可以看到的基础形状。

我已经尝试使用 scikit-learn 的 KNN-Imputer 和 Iterative Imputer,但我要么误解了这些 imputer 应该如何使用,要么它们不适合我想要做的事情,可能两者都有。

import pandas as pd 
from sklearn.experimental import enable_iterative_imputer  
from sklearn.impute import IterativeImputer
import numpy as np 

df = pd.read_csv('data.csv', names=['Day','Views'],delimiter=',',skiprows=3, usecols=[0,1], skipfooter=1, engine='python', quoting= 1)

df = df.replace(0, np.nan)
da = df.Views.rename_axis('ID').values
da = da.reshape(-1,1)
imputer = IterativeImputer(n_nearest_features = 100, max_iter = 10)
df_imputed = imputer.fit_transform(da)
df_imputed.reshape(1,-1)
df.Views = df_imputed
df

所有 NaN 值的计算结果与我当前实现的值完全相同。

任何帮助将不胜感激。

最佳答案

这里的问题是我 reshape 了数组。我的数据只是一个一维值数组,因此我通过 reshape 数组将其变成二维数组,这导致所有 NaN 值的计算结果相同。当我添加索引列并将其作为输入添加到输入器时,值的计算正确。在本例中,我最终还使用了 sklearn 的 KNN 输入器,而不是迭代输入器。

关于python - Python 中 Google Analytics 数据的数据插补,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60080848/

相关文章:

python - 如何避免回归模型中的浮点值

Python 字符串格式函数在指定精度时给出意外结果

python - 在 MySQL 中增量选择记录并在 Python 中保存到 csv

python - 如何将 pandas 数据框日期时间列转换为 int?

python - Pandas 将文件名存储在列表中并将所有文件读入数据框

python - 具有线性内核的 sklearn svc 提供奇怪的支持向量

python - 按相似关系过滤图像列表

python - 有什么理由不使用 SQLObject 而不是 SQLAlchemy?

python - randrange() 的空范围 (1,1,0)

python - 隔离林