如何将这一系列字符串转换为一系列数字

How to convert this Series of string to a Series of numbers

我有一个 pandas 系列如下:

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 方法是否会帮助我将系列与数字协调一致。请协助!

replaceto_numeric

  • 删除不是数字、period/decimal点或减号的任何内容。
  • 使用 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))