Заменить список значений в кадре данных на NaN - PullRequest
0 голосов
/ 29 марта 2020

У меня есть список значений [1, -1,2, 'X']. Я хочу заменить эти значения в кадре данных значением NaN.

Вот что я попробовал

non_values = [1,-1,2,'X']
for i in non_values:
    #azdias is the name of the dataframe that I am trying to change.
    azdias.replace(i, np.NaN, inplace=True)

Однако решение, приведенное выше, не вносит изменений в вывод. Есть ли другой способ сделать это

1 Ответ

0 голосов
/ 29 марта 2020

Используйте DataFrame.mask со значением по умолчанию NaN s, замените выбранными значениями на DataFrame.isin:

azdias = pd.DataFrame({'a':[1,2,3,-1],
                       'b':list('XYZX')})

non_values = [1,-1,2,'X']
azdias = azdias.mask(azdias.isin(non_values))
print (azdias)
     a    b
0  NaN  NaN
1  NaN    Y
2  3.0    Z
3  NaN  NaN

Или используйте DataFrame.replace:

azdias = azdias.replace(non_values, np.nan)
print (azdias)
     a    b
0  NaN  NaN
1  NaN    Y
2  3.0    Z
3  NaN  NaN 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...