Как заполнить пропущенные значения с помощью панд? - PullRequest
0 голосов
/ 06 апреля 2019

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

Например, у меня есть:

[0, 1, 2, NaN, NaN] 

и

[0, 0, 1, 2, 3]

Как я могу заменить эти NaN на 2 и 3? Кажется, что Филлна не может этого сделать.

Извините, что задал неоднозначный вопрос.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

Предположим, есть 2 массива:

arr1 = pd.DataFrame([0, 1, 2, np.NaN, np.NaN])
arr2 = pd.DataFrame([0, 0, 1, 2, 3])

Вы можете заменить NaN из arr1 на соответствующий элемент arr2 через fillna:

arr1.fillna(arr2, inplace=True)

Это результат после выполнения fillna:

arr1 = [0, 1, 2, 2, 3]
0 голосов
/ 06 апреля 2019

Сначала вы должны четко определить значение пропущенных значений (NaN, строка, целое число и даже 0 могут быть представлены как пропущенное значение в зависимости от вашего набора данных)

Самый простой способ сделать это, если у вас есть значение NaN, будет следующим: вы всегда можете преобразовать отсутствующее значение в nan, используя также replace.

# let df be your dataframe and x be the value you want to fill it with
df.fillna(x)

Второй способ - вменение значений с использованием библиотеки из sklearn. Я добавил простой код для использования функции вменения, предполагая, что ваши пропущенные значения равны 'NaN', а метод, которым вы хотите заполнить данные, - это среднее значение столбца.

from sklearn.impute import SimpleImputer
df = SimpleImputer(missing_value = np.nan, strategy = 'mean').fit_transform(df)

Вы можете изменить стратегию на другой метод, такой как среднее значение столбца, медиана или столбец. Все зависит от того, какая работа лучше для вас

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