Python установки значений NaN панд не удается - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь очистить набор данных в пандах, информация хранится в CSV-файле и импортируется с использованием:

tester = pd.read_csv('date.csv')

Каждый столбец содержит '?'где значение отсутствует.Например, есть столбец возраста, который содержит 9 вопросительных знаков (?)

Я пытаюсь установить для всех знаков вопроса значение NaN, я пытался:

tester = pd.read_csv('date.csv', na_values=["?"])

tester['age'].replace("?", np.NaN)

tester.replace('?', np.NaN)


for col in tester :
    print tester[col].value_counts(dropna=False)

Все еще возвращает 0для возраста, когда я знаю, есть 9 (?).В этом случае я предполагаю, что проверка не пройдена, так как значение никогда не рассматривается как?.

Я посмотрел файл csv на странице заметок, и вокруг символа нет пробела и т. Д.

Есть ли способ заставить это распознать?

Пример данных: enter image description here

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы очень близко:

# IT looks like file is having spaces after comma, so use `sep`
tester = pd.read_csv('date.csv', sep=', ', engine='python')

tester['age'].replace('?', np.nan)

Кажется, где-то проблема с данными, поэтому для отладки ..

pd.read_csv('file', error_bad_lines=False)

tester = tester [~(tester == '?').any(axis=1)]

ИЛИ

 pd.read_csv('file', sep='delimiter', header=None)

ИЛИ

pd.read_csv('file',header=None,sep=', ')
0 голосов
/ 12 ноября 2018

read_csv имел параметр na_values.Смотрите здесь .

df = pd.read_csv('date.csv', na_values='?')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...