将列类型“对象”转换为浮点数

Posted

技术标签:

【中文标题】将列类型“对象”转换为浮点数【英文标题】:convert a column type 'object' to float 【发布时间】:2021-05-18 10:21:08 【问题描述】:

我的 df 中有一列数字(输入“对象”):

1

2,23

5,23

200

我尝试使用 astype 进行转换,但错误提示我无法使用逗号进行转换, 所以我尝试使用

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

但结果将所有不带逗号的值转换为 NaN..

所以我尝试了另一种解决方案:

mask=df[column].str.contains(',',na=false) 
df.loc[mask].str.replace(',','.',inplace=True)

但是一条错误消息告诉我数据框没有 str 函数, 我该怎么办?

【问题讨论】:

【参考方案1】:

我已经尝试过,df[column] = df[column].str.replace(',','.').astype(float) 对我来说效果很好。

【讨论】:

【参考方案2】:

我找到了分享的解决方案:

mask=df[column].str.contains(',',na=False)
df[column]=df[column].mask(mask,df[column].str.replace(',','.'))

【讨论】:

以上是关于将列类型“对象”转换为浮点数的主要内容,如果未能解决你的问题,请参考以下文章

数字后带有减号的 CSV 文件。 “ValueError:无法将字符串转换为浮点数:”

如何用 NA 替换列中的字符串值并将列转换为浮点数?

Pandas - 将值作为字符串类型转换为浮点数

LLVM 通过将整数转换为浮点数

将双数转换为浮点数

将 pandas.Series 从 dtype 对象转换为浮点数,将错误转换为 nans