comment imputer les valeurs manquantes sur la matrice numpy créé par train_test_split de pandas.DataFrame?

datascience.stackexchange https://datascience.stackexchange.com/questions/927

Question

Je travaille sur l'ensemble de données avec beaucoup de valeurs NA avec sklearn et pandas.DataFrame. Je mis en œuvre différentes stratégies d'imputation pour les différentes colonnes des noms de colonnes à base dataframe. Par exemple NAs prédicteur 'var1' I avec des 0 impute et pour 'var2' avec une moyenne.

Lorsque je tente de traverser mon modèle en utilisant validate train_test_split il me renvoie une nparray qui ne possède pas les noms de colonnes. Comment puis-je imputez les valeurs manquantes dans ce nparray?

P.S. Je ne manque pas de valeurs impute dans l'ensemble de données d'origine avant de se séparer sur le but donc je garde les ensembles de test et de validation séparément.

Était-ce utile?

La solution

Pouvez-vous jeter votre nparray du dos de train_test_split dans un pandas géants dataframe afin que vous puissiez réaliser votre même stratégie. Ceci est très fréquent à ce que je fais quand traiter et scikit pandas géants. Par exemple,

 a = train_test_split
 new_df = pd.DataFrame(a)

Autres conseils

À partir du lien que vous avez mentionné dans le commentaire, les ensembles de train et d'essai sous la forme d'une trame de données si vous avez suivi la première explication.

Dans ce cas, vous pouvez faire quelque chose comme ceci:

df[variable] = df[variable].fillna(df[variable].median())

Vous avez des options sur ce qu'il faut remplir les valeurs N / A avec, consultez le lien. http://pandas.pydata.org/pandas-docs/stable/missing_data.html

Si vous avez suivi la deuxième explication, en utilisant la validation croisée de sklearn, vous pouvez mettre en œuvre la suggestion de mike1886 de transformer les réseaux en dataframes puis utilisez l'option fillna.

Licencié sous: CC-BY-SA avec attribution
scroll top