繁体   English   中英

如何在python中将列的数值从低到高替换?

[英]How to replace the number values of a column by low to high in python?

我有这个:

A 29
B 45
C 75
D 22
E 58
E 58
F 61
G 47
G 47

我需要得到这个:

A 2 
B 3
C 7
D 1
E 5
E 5
F 6
G 4
G 4

我考虑排序升序和排名,并在更改列值之后,但这不适用于第一列中的重复项。 需要第 1 列中的相等值在第 2 列中具有相同的排名值。有人吗?

您可以对值进行排序,对其进行枚举,然后遍历原始数据以获取原始数据值的索引。 下面是我的意思的一个例子:(只需根据您的需要实施)

data = {
    "A": 29,
    "B": 45,
    "C": 75,
    "D": 22,
    "E": 58,
    "E": 58,
    "F": 61,
    "G": 47,
}

sorted_data = dict(map(reversed, enumerate(sorted(data.values()), 1)))

result = {k: sorted_data[v] for k, v in data.items()}

结果

{'A': 2, 'B': 3, 'C': 7, 'D': 1, 'E': 5, 'F': 6, 'G': 4}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM