Панды: заменить значения строго - PullRequest
0 голосов
/ 20 мая 2018

В моих данных есть ряд строк со странными значениями " - " в строковом формате, которые я хочу заменить.

Когда я запускаю следующий код в jupyter:

df['Block Hours'][df['Block Hours'] == " -   "].count()

Я получаю 59 ожидаемых строк.

Однако, когда я пытаюсь сделать следующее:

df['Block Hours'].str.replace(" -   ", "0.0").count()

Я получаю более 40000 строк, что неверно.

Я на последней версии панд и также пытался сделать regex=False, но результат тот же.

df['Block Hours'].str.replace(" -   ", "0.0", regex=False).count()

ОБНОВЛЕНИЕ:

Для тех, кто приезжает сюда для решения подобных проблем.По сути, мой тип данных был Object, а не string.Я предположил, что все типы данных 'O' в основном являются строками, что не соответствует действительности.Так что следующий код работал для меня:

df['Block Hours'] = df['Block Hours'].astype(str).str.replace(" -   ", "0.0")

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

попробуйте это:

df['Block Hours'].replace(" -   ", "0.0", regex=True).count()
0 голосов
/ 20 мая 2018

df['Block Hours'].str.replace(" - ", "0.0") снова дает вам весь столбец, а не столбцы с замененной строкой, поэтому он будет отличаться от того, что вы ожидаете.Попробуйте сделать фильтр для столбца после замены?

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