如何对数据集进行排序和排序

时间:2019-09-15 22:52:54

标签: python pandas

我有一个数据集,我需要对以下内容进行排序和排名:

                d0   d1   d2   d3 
configuration                          
theta0         1.0  2.0  2.0  1.0  
theta1         3.0  1.0  3.0  3.0  
theta2         2.0  3.0  4.0  2.0  
theta3         4.0  4.0  1.0  4.0 

虽然我的数据集是这样的:

configuration  d0  d1  d2  d3
theta0       0.89 0.82 0.87 0.86
theta1       0.73,0.84,0.85,0.78
theta2       0.81,0.79,0.71,0.85
theta3       0.64,0.65,0.99,0.61

对各个列进行排序并赋予其排名的地方

for dataset_name, dataset_values in copy_data.items():
    sorted_list = dataset_values.sort_values(ascending=False)
    count = 1
    print(">>")
    print(sorted_list)
    for item in sorted_list:
        copy_data[dataset_name][copy_data[dataset_name] == item] = count
        count += 1

有没有更好的方法来优化它?

1 个答案:

答案 0 :(得分:2)

你可以做

df.rank(ascending=False, method='first')

如果多次出现相同值,则将按照列中的顺序排列最高的第一个和第一个条目