当我导入Excel时,列号不是浮点数,而有些是。我怎样才能全部转换为浮点数?空间造成了我的麻烦。
df['column']:
column
0 3 000,00
1 156.00
2 0
我正在尝试:
df['column'] = df['column'].str.replace(' ','')
但是它不起作用。我会在.astype(float)之后执行,但无法到达那里。 有什么办法吗? [1]已经是浮点数,但[0]是字符串。
答案 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)