Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用空格转换浮点中的字符串_Python_Pandas - Fatal编程技术网

Python 如何使用空格转换浮点中的字符串

Python 如何使用空格转换浮点中的字符串,python,pandas,Python,Pandas,导入excel时,列的数字不是浮点数,有些是浮点数。如何将全部转换为浮动?空间给我带来了麻烦 df['column']: column 0 3 000,00 1 156.00 2 0 我正在努力: df['column'] = df['column'].str.replace(' ','') 但它不起作用。我会在.astype(float)之后做,但无法到达那

导入excel时,列的数字不是浮点数,有些是浮点数。如何将全部转换为浮动?空间给我带来了麻烦

  df['column']:
             column
0          3 000,00                
1            156.00
2                 0
我正在努力:

df['column'] = df['column'].str.replace(' ','')
但它不起作用。我会在.astype(float)之后做,但无法到达那里。
有什么解决办法吗?[1] 已经是一个浮点,但[0]是一个字符串。

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

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

我想这应该会有帮助:“但它不起作用”,什么不起作用?我已经尝试了to_numeric(),但是:无法解析位置0处的字符串“3 000,00”,并且无法用上面的replace擦除空格。列值不会更改并保持在3 000,00您的示例正常工作,但当我尝试使用数据时,我得到:无法将字符串转换为浮点:“3\xa0000”。也许我的导入是错误的:df=pd.read_excel('test.xlsx')是的,这听起来像是您有一个奇怪的字符或意外的换行符看起来像是excel或您的源在数据中使用了奇怪的字符。在转换为float之前也删除这些字符:
.replace(u'\xa0','')
我看到的唯一奇怪的事情是,我也有-9 000,00的值,但它在上面的示例中起作用。我不确定是什么问题。。。