Python中用于Google Analytics(分析)数据的数据插补

问题描述 投票:1回答:1

我有一个网站上的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个回答
0
投票

这里的问题是我重塑了数组。我的数据只是一维值数组,因此我通过对数组进行重塑使其变为2D值,这导致所有NaN值都被计算为相同值。当我添加索引列并将其作为输入添加到imputer时,可以正确计算值。我最终还使用了sklearn的KNN imputer,而不是在这种情况下使用迭代的imputer。

© www.soinside.com 2019 - 2024. All rights reserved.