Как вменять пропущенные значения на массиве Numpy, созданного Train_test_split из pandas.dataframe?

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

Вопрос

Я работаю над набором данных с большим количеством значений NA с Sklearn и Pandas.DataFrame. Я реализовал разные стратегии вменения для разных столбцов имен столбцов на основе данных. Например, NAS Predictor 'var1' Я вмешаюсь с 0 и для «var2» со средним.

Когда я пытаюсь пересечь свою модель, используя train_test_split, он возвращает мне nparray, который не имеет имен столбцов. Как я могу вменять недостающие значения в этом NPARRAY?

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

Это было полезно?

Решение

Можете ли вы просто отбросить свой Nparray из Train_test_split обратно в DataFrame Pandas, чтобы вы могли выполнить свою ту же стратегию. Это очень распространено для того, что я делаю, имея дело с пандами и scikit. Например,

 a = train_test_split
 new_df = pd.DataFrame(a)

Другие советы

По ссылке, которую вы упомянули в комментарии, наборы поездов и тестов должны быть в форме DataFrame, если вы следили за первым объяснением.

В этом случае вы можете сделать что -то вроде этого:

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

У вас есть параметры, что заполнить значения N/A, ознакомьтесь с ссылкой.http://pandas.pydata.org/pandas-docs/stable/missing_data.html

Если вы следили за вторым объяснением, используя перекрестную проверку Sklearn, вы можете реализовать предложение Mike1886 о превращении массивов в DataFrames, а затем использовать опцию Fillna.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top