I have a pandas series as followed:
series = pd.Series(['', '', '$ 200,000', '$ -320,000','$ 700,000','','$ -10,000'])
I need to convert all string values in the series to integers or float by removing '$ '
and commas. I have tried the following:
for i in series:
if '$ ' in i:
i=i.replace('$ ',"")
series = pd.to_numeric(series, errors='coerce')
However, the replace method doesn't change the series. I'm not yet sure if pd.to_numeric
method is gonna help me concert the series to numbers or not.
replace
and to_numeric
pandas.Series.str.replace
defaults to using regexpd.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
Equivalently: pandas.Series.replace
has to be told that using regex is needed.
pd.to_numeric(series.replace('[^0-9\.-]', '', regex=True))