Как преобразовать эту серию строк в серию чисел - PullRequest
1 голос
/ 17 октября 2019

У меня есть ряд панд следующим образом:

series = pd.Series(['', '', '$ 200,000', '$ -320,000','$ 700,000','','$ -10,000']) 

Мне нужно преобразовать все строковые значения в серии в целые числа или числа с плавающей запятой, удалив '$' и запятые. Я пробовал следующее:

for i in series:
    if '$ ' in i:
        i=i.replace('$ ',"")
series = pd.to_numeric(series, errors='coerce')

Однако метод замены не меняет серию. Я еще не уверен, поможет ли метод pd.to_numeric мне согласовать серию с цифрами или нет. Пожалуйста, помогите!

1 Ответ

1 голос
/ 17 октября 2019

replace и to_numeric

  • Удалите все, что не является цифрой, точкой / десятичной точкой или знаком минус.
  • Использование pandas.Series.str.replace по умолчанию использует регулярное выражение

pd.to_numeric(series.str.replace('[^0-9\.-]', ''))

0         NaN
1         NaN
2    200000.0
3   -320000.0
4    700000.0
5         NaN
6    -10000.0
dtype: float64

Эквивалентно: pandas.Series.replace нужно сказать, что необходимо использовать регулярное выражение.

pd.to_numeric(series.replace('[^0-9\.-]', '', regex=True))
...