pandas - 用于转换一列或多列的 Python 函数
问题描述
我的目标是数据框中的指定列被转换为数字,即使它们中有逗号。换句话说:
cols = ["x"]
df = pd.DataFrame({"x": ["1,000", "2,000"], "y": ["430","3,000"]})
df = data.float_convert(df, cols)
生成具有此值的 df:
pd.DataFrame({"x": ["1000", "2000"], "y": ["430","3,000"]})
这是我的功能:
def float_convert(df, cols):
return (df.loc[:,cols].apply(lambda x: x.str.replace(',', "").astype(float)))
我不明白为什么我的代码没有达到我的预期,也不知道是否有更简单的方法可以做到这一点。
解决方案
你忘了把它分配回去
def float_convert(df, cols):
df.loc[:,cols]=df.loc[:,cols].apply(lambda x: x.str.replace(',', "").astype(float))
float_convert(df, cols)
df
x y
0 1000 430
1 2000 3,000
推荐阅读
- nexus - 如何通过curl将jar发布到nexus?
- xpages - Xpages - 使用方法绑定选项的自定义属性未显示内容
- node.js - 将本地 Electron 文件加载为安全内容
- ruby-on-rails - Ruby嵌套事务:如果外部事务回滚,嵌套事务会回滚吗?
- python - OpenGL相机不断围绕原点旋转
- java - Travis 构建带有 JavaFx 支持的 OpenJDK10
- asp.net - 项目列表始终为空 MVC 5
- ruby-on-rails - 在嵌套事务中,如果外部事务回滚,内部事务是否会回滚?
- javascript - 由于引导程序添加了显示属性,引导程序模式的自定义动画无法关闭
- django - django.db.utils.ProgrammingError:关系“auth_permission”不存在