python - 将字典中的数字四舍五入为唯一整数
问题描述
我已经使用 pandas rank 函数来获取字典
在值绑定的情况下,rank 函数给出非整数值。例如
{'EHS': 11.0,
'Engineering': 4.5,
'GPS': 9.5,
'Logistics': 3.0,
'NPI & Technical': 7.0,
'OSD': 8.0,
'Quality': 1.5,
'RSC & Micronising': 1.5,
'Strategy': 4.5,
'Tech': 6.0,
'Unknown Function': 9.5}
我想将所有非整数四舍五入到最接近的唯一整数。我不介意它们是向上还是向下取整,所以如果工程被四舍五入到 4 并且战略被四舍五入到 5 或者反之亦然,我会很高兴。
使用 dictionary.values() 我已经能够获取值,但不确定将值四舍五入并将它们放回字典中的最佳方法是什么
解决方案
这应该可以解决问题。至少对于您提出的情况。
[编辑:修改新注释后的代码]。如果您希望数字在这种情况下是连续的,您可以执行以下操作:
d = {'EHS': 11.0,
'Engineering': 4.5,
'GPS': 9.5,
'Logistics': 3.0,
'NPI & Technical': 7.0,
'OSD': 8.0,
'Quality': 1.5,
'RSC & Micronising': 1.5,
'Strategy': 4.5,
'Tech': 6.0,
'Unknown Function': 9.5}
ranks = list(range(1,len(d)+1))
for x,y in enumerate(sorted(d.items(),key=lambda x: x[1] )):
d[y[0]] = ranks.pop(0)
print(d)
注意:如评论中所述。如果你使用rank函数,你可以直接得到结果。你得到浮点数是因为 pandas 不知道对你拥有的列进行排名的方法。您必须指定获取整数的方法。
例如:
df['my_col'].rank(method='first')
将给出整数等级。
推荐阅读
- amazon-web-services - 在启用授权时,AWS API Gateway 中出现 {“message”:null} 400 Bad Request Error
- sql - 需要有关 sql 中的字符串函数的信息
- python - 使用 Tensorflow Datasets 的加载函数时出现的问题
- python - 从另一个文件中的另一个函数调用变量
- roblox - 将零件的“自然”方向重置为 0,0,0 而不移动它
- java - Spring Session JDBCTokenRepository 覆盖默认表
- javascript - 如何解决无法在家中重现的客户端 Javascript 错误?
- python - 一个字段重复而另一个字段不同的Django Query
- python - Python:数字的数字根:它返回无
- php - Php ldap bind - 无法绑定到服务器:凭据无效