将列类型“对象”转换为浮点数
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(',','.'))
【讨论】:
以上是关于将列类型“对象”转换为浮点数的主要内容,如果未能解决你的问题,请参考以下文章