簡體   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