Вменение данных в Python для данных Google Analytics - PullRequest
1 голос
/ 05 февраля 2020

У меня есть наборы данных Google Analytics с веб-сайта, которые я планирую проанализировать для проекта. Однако, из-за обслуживания и других факторов, есть куски дат, для которых нет данных. Я хочу вложить эти данные, сохраняя при этом целостность данных, поскольку планирую построить эти наборы и сравнить кривые разных наборов друг с другом с течением времени.

Пример

Я хочу использовать ближайшие действительные точки данных для каждого отсутствующего элемента данных, чтобы рассчитать это значение, чтобы сохранить базовую форму, которую можно увидеть из изображения.

Я уже пытался использовать KNN-Imputer и Iterative Imputer от scikit-learn, но я либо неправильно понимаю, как предполагается использовать эти импутеры, либо они не соответствуют моим требованиям. пытаясь сделать, потенциально оба.

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 рассчитываются так, чтобы они были точно такими же числами, что и в настоящее время.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 февраля 2020

Проблема была в том, что я изменил массив. Мои данные были просто одномерным массивом значений, поэтому я сделал его двумерным, изменив форму массива, в результате чего все значения NaN были рассчитаны одинаково. Когда я добавил столбец индекса и включил его в качестве входных данных для импутера, значения были рассчитаны правильно. Я также в конечном итоге использовал импутер KNN из sklearn вместо итерационного импутера в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...