cómo imputar valores perdidos en la matriz de numpy creado por train_test_split de pandas.DataFrame?

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

Pregunta

Estoy trabajando en el conjunto de datos con una gran cantidad de NA valora con sklearn y pandas.DataFrame. He implementado diferentes estrategias de imputación para las diferentes columnas de los nombres de las columnas basadas trama de datos. Por ejemplo AN predictor 'var1' Yo atribuyo a 0 y para 'var2' con media.

Cuando intento de cruzar validar mi modelo usando train_test_split me devuelve una nparray que no tiene nombres de columna. ¿Cómo puedo imputar valores perdidos en este nparray?

P.S. No imputar valores en el conjunto de datos original que faltan antes de separarse a propósito, así que mantener los equipos de prueba y validación por separado.

¿Fue útil?

Solución

¿Puede usted acaba de emitir su nparray de atrás train_test_split en una trama de datos pandas para que pueda llevar a cabo su misma estrategia. Esto es muy común a lo que hago cuando se trata de pandas y scikit. Por ejemplo,

 a = train_test_split
 new_df = pd.DataFrame(a)

Otros consejos

Desde el enlace que usted ha mencionado en el comentario, los conjuntos de trenes y de prueba debe ser en forma de una trama de datos si ha seguido la primera explicación.

En ese caso, se podría hacer algo como esto:

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

Usted tiene opciones en lo que para llenar los valores N / A con, consulte el enlace. http://pandas.pydata.org/pandas-docs/stable/missing_data.html

Si ha seguido la segunda explicación, el uso de validación cruzada de sklearn, se podría poner en práctica la sugerencia de mike1886 de transformar las matrices en tramas de datos y luego utilizar la opción fillna.

Licenciado bajo: CC-BY-SA con atribución
scroll top