如何将这一系列字符串转换为一系列数字
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 方法是否会帮助我将系列与数字协调一致。请协助!
replace
和 to_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))
我有一个 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 方法是否会帮助我将系列与数字协调一致。请协助!
replace
和 to_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))