python - 将除一列之外的所有对象列转换为浮点数
问题描述
假设在数据框 df 中有:
a b c d
ana 31% 26% 29%
bob 52% 45% 9%
cal 11% 6% 23%
dan 29% 12% 8%
其中 a、bc 和 d 下的所有数据类型都是对象。我想将 b、c 和 d 转换为它们的十进制形式:
df.columns = df.columns.str.rstrip('%').astype('float') / 100.0
但我不知道如何不包括列
解决方案
用于Index.drop
所有没有a
with的列DataFrame.replace
,转换为浮点数并除以100
:
cols = df.columns.drop('a')
df[cols] = df[cols].replace('%', '', regex=True).astype('float') / 100.0
print (df)
a b c d
0 ana 0.31 0.26 0.29
1 bob 0.52 0.45 0.09
2 cal 0.11 0.06 0.23
3 dan 0.29 0.12 0.08
或者您可以将第一列转换为index
by DataFrame.set_index
,因此所有没有的列a
都应该被处理:
df = df.set_index('a').replace('%', '', regex=True).astype('float') / 100.0
print (df)
b c d
a
ana 0.31 0.26 0.29
bob 0.52 0.45 0.09
cal 0.11 0.06 0.23
dan 0.29 0.12 0.08
推荐阅读
- java - 更改特殊插件向导的徽标
- python - Django中的多个按钮:接受和拒绝
- javascript - 如何在 Angular 7 中显示页面加载的加载指示器,直到所有 api 响应?
- php - WordPress网站上的while循环内的Jquery问题
- jquery - 如何编辑使用 jQuery 切换引导模式的按钮?
- python - 导入_ssl错误,DLL加载失败,Python 37 Anaconda Windows 10
- typescript - 如何合并对象联合中的属性
- java - 用户有谷歌帐户或电子邮件帐户注销强制关闭火力基地
- java - 单独的搜索关键字和方面
- r - 如何获取脚本中的所有对象