замена специального символа в фрейме данных панд - PullRequest
0 голосов
/ 30 сентября 2019

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

 for col in adult.columns:
      if adult[col]=='?':
         adult[col]=adult[col].str.replace('?', 'NaN')

План состоит в том, чтобы использовать 'NaN', затем использовать функцию fillna или удалить их с помощью dropna . Вторая проблема заключается в том, что не все столбцы являются категориальными, поэтому функция str также неверна. Как я могу легко справиться с этой ситуацией?

1 Ответ

0 голосов
/ 30 сентября 2019

Если вы читаете данные из файла .csv или .xlsx, вы можете использовать параметр na_values:

adult = pd.read_csv('path/to/file.csv', na_values=['?'])

В противном случае сделайте то, что сказал @MasonCaiby, и используйте adult.replace('?', float('nan'))

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