我是python pandas的新手,由于小数点和零之间有一个空格,我在尝试对列中的所有值进行舍入时遇到了困难。例如,
Hi
21. 0
8. 0
52. 0
45. 0
我尝试使用下面的当前代码,但它给了我:
float()的无效文字:21。0
df.Hi.astype(float).round()
答案 0 :(得分:1)
在转换为float之前,尝试在字符串上使用replace
替换字符串中的所有空格:
df.Hi.str.replace(' ', '').astype(float).round()
答案 1 :(得分:0)
如果我理解正确,您希望将Hi
列中的值转换为float
。
小数点和零之间有一个空格,表示您的值是字符串。
您可以使用float
功能将其转换为lambda
。
df['Hi'] = df['Hi'].apply(lambda x: x.replace(" ", "")).astype(float)
print(df)
Hi
0 21.0
1 8.0
2 52.0
3 45.0
print(df.dtypes)
Hi float64
dtype: object