如何在带空格的float中转换字符串-pandas

时间:2018-12-18 20:46:27

标签: python pandas

当我导入Excel时,列号不是浮点数,而有些是。我怎样才能全部转换为浮点数?空间造成了我的麻烦。

  df['column']:
             column
0          3 000,00                
1            156.00
2                 0

我正在尝试:

df['column'] = df['column'].str.replace(' ','')

但是它不起作用。我会在.astype(float)之后执行,但无法到达那里。 有什么办法吗? [1]已经是浮点数,但[0]是字符串。

2 个答案:

答案 0 :(得分:2)

首先将它们全部转换为字符串:

df['column'] = [float(str(val).replace(' ','').replace(',','.')) for val in df['column'].values]

示例:

>>> df = pd.DataFrame({'column':['3 000,00', 156.00, 0]})
>>> df['column2'] = [float(str(val).replace(' ','').replace(',','.')) for val in df['column'].values]
>>> df
     column  column2
0  3 000,00   3000.0
1       156    156.0
2         0      0.0

答案 1 :(得分:1)

import re    
df['column'] = df['column'].apply(lambda x: re.sub("[^0-9.]", "", str(x).replace(',','.'))).astype(float)