繁体   English   中英

以增量顺序在熊猫中编号,也不考虑列?

[英]numbering in pandas on incremental order and also without considering a column?

输入数据框:

load1 = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],

                   })

Rank :按降序对 B 值进行排序,并按递增顺序从 1 开始排序

Rank_without_a_column : 将降序的第一列排序为 B 并在递增顺序上给出从 1 开始的排名

Exact_Rank :给出正确的排名,如预期输出的准确排名所示

Exact_Rank_Without_a_column

预期输出:

        A   B   Rank    Rank_without_a_column  Exact_Rank  Exact_Rank_Without_a_column   

    0   a   5   1   Null                          1          Null
    1   b   5   2   1                             1           1
    2   c   5   3   2                             1           1
    3   d   4   4   3                             2           2
    4   e   4   5   4                             2           2
    5   f   4   6   5                             2           2

您需要一系列排名方法:

load1.sort_values('B',ascending=False,inplace=True)
load1['Rank'] = load1['B'].rank(ascending=False,method='first').astype(int)
load1.reset_index(drop=True,inplace=True)
load1.loc[1:,'Rank_without_a_column'] = load1.loc[1:,'B'].rank(ascending=False,method='first')
load1['Exact_Rank'] = load1['B'].rank(ascending=False,method='dense').astype(int)
load1.loc[1:,'Exact_Rank_Without_a_column'] = load1.loc[1:,'Exact_Rank'].rank(ascending=True,method='dense')


load1

    A   B   Rank    Rank_without_a_column   Exact_Rank  Exact_Rank_Without_a_column
0   b   5   1       NaN                     1           NaN
1   d   5   2       1.0                     1           1.0
2   e   5   3       2.0                     1           1.0
3   a   4   4       3.0                     2           2.0
4   c   4   5       4.0                     2           2.0
5   f   4   6       5.0                     2           2.0

暂无
暂无

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

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