Python - заменить отрицательные столбцы, показанные в виде строки с круглыми скобками, в число с плавающей точкой - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть набор данных, где некоторые из отрицательных чисел показаны в формате (3.4), а некоторые как -3.4.Я пытаюсь настроить все круглые скобки в формате с плавающей точкой.

Приведенная ниже формула выдает ошибку

replace () аргумент 1 должен быть str, а не list

Total['Rate']=Total['Rate'].apply(lambda x:x.replace(['(',')'],['-','']))

Old Format
(.35)
1.2
-2


Final Format
-.35
1.2
-2

Кто-то предложил Total ['Rate'] = Total ['Rate']. Apply (лямбда x: float (x), если '(' не в x, иначе float ('-' + x [x].find ("(") + 1: x.find (")")]))

Это приводит к ошибке TypeError: аргумент типа 'float' не повторяется

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

Похоже, что вам нужно.

Демо:

import pandas as pd

df = pd.DataFrame({"Rate": ["(.35)", "1.2", "-2"]})
print(df["Rate"].str.replace("(", "-").str.rstrip(")").astype(float))

Вывод:

0   -0.35
1    1.20
2   -2.00
Name: Rate, dtype: float64
0 голосов
/ 26 февраля 2019

Вы также можете попробовать:

Total['rate'] = Total['rate'].astype(str).str.replace('\((.*)\)', '-\\1')
0 голосов
/ 26 февраля 2019

Взгляните Как использовать метод замены Просто объедините replace() методы:

Total['Rate']=Total['Rate'].apply(lambda x:x.replace('(',')').replace('-',''))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...