https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.replace.html
У меня есть столбец значений, отформатированный как Strings, некоторые содержат запятую, например:
0 20,7
1 22
2 21
3 20
4 24,4
5 23,8
6 23,6
7 21,6
8 24,3
9 23,3
10 24,2
....
17053 16
17054 16
17055 15
17056 15
17057 19
17058 17
17059 18
17060 19
17061 20
17062 21
17063 20
Я хочу преобразовать их как float.
Теперь я не могу напрямую применить метод astype или to_numeric, иначе строки с 20,7 не будут интерпретироваться.
Странно то, что если применить .str.replace(',', '.')
к строкам, которые НЕ содержат шаблон, регулярное выражение завершается ошибкой и возвращается к NaN. Я ожидал бы замены, если шаблон найден, иначе вернул бы значение как есть.
Я также набрал .str.replace(',', '.', regex = False)
безуспешно.
Пример:
Длятакие значения, как "20,7", точка замены на запятую работает нормально, и я могу затем преобразовать в число, получив число с плавающей запятой 20,7.
Но у меня также есть эти значения:
test['TMEDIA °C'][-10:]
17054 16
17055 15
17056 15
17057 19
17058 17
17059 18
17060 19
17061 20
17062 21
17063 20
и применить str.replace я получаю это:
test['TMEDIA °C'][-10:].str.replace(',', '.')
17054 NaN
17055 NaN
17056 NaN
17057 NaN
17058 NaN
17059 NaN
17060 NaN
17061 NaN
17062 NaN
17063 NaN
и не могу применить astype ко всему столбцу, вместо этого я хотел бы получить это:
test['TMEDIA °C'][-10:].astype(float)
17054 16.0
17055 15.0
17056 15.0
17057 19.0
17058 17.0
17059 18.0
17060 19.0
17061 20.0
17062 21.0
17063 20.0
Это ошибка str.replace () или как сохранить текущее значение в случае сбоя регулярного выражения?