将字典中的数字舍入为唯一整数

2024-10-01 07:49:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我用熊猫去买了一本字典

在值绑定的情况下,秩函数给出非整数值。比如说

{'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,或者vica取整为5,我会很高兴

使用dictionary.values()我已经能够得到这些值,但不确定什么是对这些值进行四舍五入并将它们放回字典的最佳方法


Tags: 函数字典情况整数gpsqualitylogisticsstrategy
1条回答
网友
1楼 · 发布于 2024-10-01 07:49:34

这应该可以解决问题。至少对于你提出的案例

[编辑:在新注释后修改代码]。在这种情况下,如果希望数字是连续的,可以执行以下操作:

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)

注:如评论中所述。如果使用秩函数,则可以直接获得结果。您将获得浮动,因为pandas不知道对您拥有的列进行排序的方法。必须指定获取整数的方法

例如:

df['my_col'].rank(method='first')

将给出整数秩

相关问题 更多 >