如何将带有句点分隔符的数字字符串转换为浮点数?

时间:2020-05-16 22:10:49

标签: python pandas

我正在尝试将Pandas DataFrame中的值从字符串转换为float,但是遇到错误。

该列如下所示:

PIB (IBGE/2005)
---------------
 71.638.000
114.250.000
 44.373.000
462.258.000
186.812.000

.是数字组分隔符,因此71.638.000应该成为浮点数71638000

但是我得到了错误:

ValueError: could not convert string to float: '71.638.000'

这是我完整的DataFrame的图像:

Dataframe screenshot 如何将该列从字符串转换为浮点数?

2 个答案:

答案 0 :(得分:1)

“ PIB(IBGE / 2005)”列中的值似乎有一个以千位分隔符表示的句点。您必须先删除那些值,然后再将值转换为浮点数。您可以尝试以下方法来为转换为float的列做准备:

df1 = df1['PIB (IBGE/2005)'].apply(lambda x: x.replace('.', ''))

编辑: 如以下评论中所建议的那样,它是avoid apply

的一种更正确的解决方案
df1 = df1['PIB (IBGE/2005)'].str.replace('.', '')

答案 1 :(得分:0)

替换“。”用''并将字符串转换为浮点数

S = "123.567.000"
D = float(S.replace('.',''))
print(D)