нумерация в пандах по возрастанию, а также без учета столбца? - PullRequest
0 голосов
/ 07 сентября 2018

Входной кадр данных:

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

1 Ответ

0 голосов
/ 07 сентября 2018

Вам нужны серии ранговых методов:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...