В чем разница в использовании replace ()? - PullRequest
0 голосов
/ 16 июня 2019

У меня есть столбец в фрейме данных pandas со строковыми значениями, которые я хотел бы преобразовать в float.Пример строковых значений: «0,40», «0,50» и т. Д.Итак, первое, что я пытаюсь сделать, это заменить запятые на точки.

Когда я пытаюсь сделать это

df.columnname = df.columnnname.replace(',', '.')

, это не работает.Что интересно, замена работает на полные значения, например:

df.columnname = df.columnnname.replace('0,40', '.')

Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 16 июня 2019

Вам нужно regex=True для замены подстрок, если оно опущено, панды попробуйте заменить значения отдельно , и, поскольку они не существуют, значения не заменяются:

df.columnname = df.columnnname.replace(',', '.', regex=True)

Проверить разницу - в столбце new2заменяется только вторая ,, потому что не подстроки:

df = pd.DataFrame({'columnnname':['0,40',',','10']})

df['new1'] = df.columnnname.replace(',', '.', regex=True)
df['new2'] = df.columnnname.replace(',', '.')
print (df)
  columnnname  new1  new2
0        0,40  0.40  0,40
1           ,     .     .
2          10    10    10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...