Как вставить определенное значение в строки в pandas - PullRequest
0 голосов
/ 21 марта 2020

Я хочу изменить столбец с str на float. Теперь в столбце есть числа с суффиксом «M» или «K», которые я хочу удалить, и сохраняю только число, и строку, которую я хочу заменить на 0.

1) Для удаления символов М и К, я использовал это:

apps["Size"] = apps["Size"].map(lambda x: x.lstrip('M').rstrip('M'))
apps["Size"] = apps["Size"].map(lambda x: x.lstrip('K').rstrip('K'))

2) Чтобы изменить значение с «Зависит от устройства» на 0, я попытался использовать это:

mask = apps["Size"] == 'Varies with device'
apps.loc[mask, apps["Size"]] = '0'

Что такое Я делаю не так? Есть ли более простой способ изменить это?

Спасибо!

1 Ответ

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

Удаление единиц на Series.str.strip, а затем преобразование значений в цифры c с to_numeric и errors='coerce' для других не числовых значений c в отсутствующие значения, которые заменены на Series.fillna:

apps["Size"] = pd.to_numeric(apps["Size"].str.strip('KM'), errors='coerce').fillna(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...