python-3.x 如何转换一个字符串在浮点与空格-Pandas

bybem2ql  于 2022-12-24  发布在  Python
关注(0)|答案(2)|浏览(120)

导入Excel文件时,列中的一些数字是浮点型,而另一些不是。如何将所有数字转换为浮点型?3 000,00中的空格给我带来了问题。

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

我正在尝试:

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

但是它不工作。我想在.astype(float)之后做,但是不能到达那里。有什么解决办法吗?1已经是一个浮点数,但是0是一个字符串。

h9a6wy2h

h9a6wy2h1#

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

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
xpcnnkqh

xpcnnkqh2#

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

相关问题