當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.core.groupby.GroupBy.rank用法及代碼示例


用法:

final GroupBy.rank(method='average', ascending=True, na_option='keep', pct=False, axis=0)

提供每個組中值的排名。

參數

method{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’},默認 ‘average’
  • 平均:組的平均排名。

  • min:組中最低的排名。

  • max:組中的最高排名。

  • first:ranks 按它們出現在數組中的順序分配。

  • 密集:類似於‘min’,但組間排名總是增加 1。

ascending布爾值,默認為真

從高 (1) 到低 (N) 的等級為假。

na_option{‘keep’, ‘top’, ‘bottom’},默認 ‘keep’
  • 保持:將 NA 值保留在它們所在的位置。

  • top:升序時的最小排名。

  • 底部:降序時的最小排名。

pct布爾值,默認為 False

計算每組內數據的百分比排名。

axis整數,默認 0

要計算等級的對象的軸。

返回

具有每組內值排名的 DataFrame

例子

>>> df = pd.DataFrame(
...     {
...         "group":["a", "a", "a", "a", "a", "b", "b", "b", "b", "b"],
...         "value":[2, 4, 2, 3, 5, 1, 2, 4, 1, 5],
...     }
... )
>>> df
  group  value
0     a      2
1     a      4
2     a      2
3     a      3
4     a      5
5     b      1
6     b      2
7     b      4
8     b      1
9     b      5
>>> for method in ['average', 'min', 'max', 'dense', 'first']:
...     df[f'{method}_rank'] = df.groupby('group')['value'].rank(method)
>>> df
  group  value  average_rank  min_rank  max_rank  dense_rank  first_rank
0     a      2           1.5       1.0       2.0         1.0         1.0
1     a      4           4.0       4.0       4.0         3.0         4.0
2     a      2           1.5       1.0       2.0         1.0         2.0
3     a      3           3.0       3.0       3.0         2.0         3.0
4     a      5           5.0       5.0       5.0         4.0         5.0
5     b      1           1.5       1.0       2.0         1.0         1.0
6     b      2           3.0       3.0       3.0         2.0         3.0
7     b      4           4.0       4.0       4.0         3.0         4.0
8     b      1           1.5       1.0       2.0         1.0         2.0
9     b      5           5.0       5.0       5.0         4.0         5.0

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.core.groupby.GroupBy.rank。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。