【问题标题】:Data imputation in Python for Google Analytics data谷歌分析数据的 Python 数据插补
【发布时间】:2020-05-21 15:58:53
【问题描述】:

我有一组来自某个网​​站的 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 值与我当前实现的数字完全相同。

任何帮助将不胜感激。

【问题讨论】:

    标签: python dataframe scikit-learn missing-data imputation


    【解决方案1】:

    这里的问题是我重塑了数组。我的数据只是一个 1D 值数组,所以我通过重塑导致所有 NaN 值计算为相同的数组来使其成为 2D。当我添加一个索引列并将其作为输入添加到 imputer 时,值的计算是正确的。我最终还使用了来自 sklearn 的 KNN imputer,而不是在本例中的迭代 imputer。

    【讨论】:

      猜你喜欢
      • 2017-05-08
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多