Hướng dẫn how to rank numbers in python - cách xếp hạng các số trong python

Vì bạn đã gắn thẻ câu hỏi này scipy, bạn có thể sử dụng scipy.stats.rankdata:

>>> rankdata(somelist)
array([ 2.,  3.,  1.,  4.])
>>> len(somelist) - rankdata(somelist)
array([ 2.,  1.,  3.,  0.])
>>> len(somelist) - rankdata(somelist) + 1
array([ 3.,  2.,  4.,  1.])

Ưu điểm thực sự là bạn có thể chỉ định cách bạn muốn các trường hợp góc được đối xử:

>>> rankdata([0,1,1,2])
array([ 1. ,  2.5,  2.5,  4. ])
>>> rankdata([0,1,1,2], method='min')
array([ 1,  2,  2,  4])
>>> rankdata([0,1,1,2], method='dense')
array([ 1,  2,  2,  3])

Câu hỏi Q2.4.3

Đưa ra một danh sách các điểm kiểm tra được đặt hàng, tạo ra một danh sách liên kết từng điểm với thứ hạng (bắt đầu với 1 cho điểm cao nhất). Điểm bằng nhau nên có cùng thứ hạng. Ví dụ: danh sách đầu vào [87, 75, 75, 50, 32, 32] sẽ tạo ra danh sách xếp hạng [1,2,2,4,5,5].


Giải pháp Q2.4.3

DataFrame.Rank (AXIS = 0, Phương thức = 'trung bình', numeric_only = _nodefault.no_default, na_option = 'keep', ascending = true, pct = false) [Nguồn]#rank(axis=0, method='average', numeric_only=_NoDefault.no_default, na_option='keep', ascending=True, pct=False)[source]#

Tính toán xếp hạng dữ liệu số (1 đến n) dọc theo trục.

Theo mặc định, các giá trị bằng nhau được gán một thứ hạng là trung bình của các cấp bậc của các giá trị đó.

ParameterSaxis {0 hoặc ‘index, 1 hoặc‘ cột,}, mặc định 0axis{0 or ‘index’, 1 or ‘columns’}, default 0

Chỉ mục để xếp hạng trực tiếp. Đối với chuỗi tham số này không được sử dụng và mặc định là 0.

Phương thức {’trung bình,’ min, ‘Max,’ đầu tiên{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, default ‘average’

Cách xếp hạng nhóm hồ sơ có cùng giá trị (nghĩa là mối quan hệ):

  • Trung bình: Thứ hạng trung bình của nhóm

  • Min: Xếp hạng thấp nhất trong nhóm

  • Max: Xếp hạng cao nhất trong nhóm

  • Đầu tiên: xếp hạng được gán theo thứ tự chúng xuất hiện trong mảng

  • Dense: Giống như ‘Min, nhưng thứ hạng luôn tăng thêm 1 giữa các nhóm.

numeric_onlybool, tùy chọnbool, optional

Đối với các đối tượng DataFrame, chỉ xếp hạng các cột số nếu được đặt thành true.

Na_option {‘Keep,’ Top, ‘Bottom,}, mặc định{‘keep’, ‘top’, ‘bottom’}, default ‘keep’

Cách xếp hạng các giá trị NAN:

  • Giữ: Gán cấp bậc NAN cho các giá trị NAN

  • Top: Gán thứ hạng thấp nhất cho các giá trị NAN

  • Dưới cùng: Gán thứ hạng cao nhất cho các giá trị NAN

AscendingBool, mặc định đúngbool, default True

Liệu các yếu tố có nên được xếp theo thứ tự tăng dần hay không.

pctbool, mặc định saibool, default False

Có hay không hiển thị bảng xếp hạng trả về ở dạng phần trăm.

ReturnSsame loại làm người gọi

Trả về một loạt hoặc DataFrame với xếp hạng dữ liệu dưới dạng giá trị.

Ví dụ

>>> df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
...                                    'spider', 'snake'],
...                         'Number_legs': [4, 2, 4, 8, np.nan]})
>>> df
    Animal  Number_legs
0      cat          4.0
1  penguin          2.0
2      dog          4.0
3   spider          8.0
4    snake          NaN

Các mối quan hệ được gán giá trị trung bình của các cấp bậc (theo mặc định) cho nhóm.

>>> s = pd.Series(range(5), index=list("abcde"))
>>> s["d"] = s["b"]
>>> s.rank()
a    1.0
b    2.5
c    4.0
d    2.5
e    5.0
dtype: float64

Ví dụ sau đây cho thấy phương thức hoạt động như thế nào với các tham số trên:

  • Default_Rank: Đây là hành vi mặc định thu được mà không cần sử dụng bất kỳ tham số nào.

  • MAX_RANK: Cài đặt method = 'max' Các bản ghi có cùng giá trị được xếp hạng bằng thứ hạng cao nhất (ví dụ: Vì ‘Cat, và‘ Dog, cả hai đều ở vị trí thứ 2 và thứ 3, xếp hạng 3 được chỉ định.)

  • NA_BOTTOM: Chọn

    >>> rankdata([0,1,1,2])
    array([ 1. ,  2.5,  2.5,  4. ])
    >>> rankdata([0,1,1,2], method='min')
    array([ 1,  2,  2,  4])
    >>> rankdata([0,1,1,2], method='dense')
    array([ 1,  2,  2,  3])
    
    0, nếu có các bản ghi có giá trị NAN, chúng được đặt ở cuối bảng xếp hạng.

  • PCT_RANK: Khi cài đặt

    >>> rankdata([0,1,1,2])
    array([ 1. ,  2.5,  2.5,  4. ])
    >>> rankdata([0,1,1,2], method='min')
    array([ 1,  2,  2,  4])
    >>> rankdata([0,1,1,2], method='dense')
    array([ 1,  2,  2,  3])
    
    1, thứ hạng được thể hiện dưới dạng xếp hạng phần trăm.

>>> df['default_rank'] = df['Number_legs'].rank()
>>> df['max_rank'] = df['Number_legs'].rank(method='max')
>>> df['NA_bottom'] = df['Number_legs'].rank(na_option='bottom')
>>> df['pct_rank'] = df['Number_legs'].rank(pct=True)
>>> df
    Animal  Number_legs  default_rank  max_rank  NA_bottom  pct_rank
0      cat          4.0           2.5       3.0        2.5     0.625
1  penguin          2.0           1.0       1.0        1.0     0.250
2      dog          4.0           2.5       3.0        2.5     0.625
3   spider          8.0           4.0       4.0        4.0     1.000
4    snake          NaN           NaN       NaN        5.0       NaN

Làm thế nào để bạn gán một thứ hạng cho dữ liệu?

Theo mặc định, các cấp bậc được gán bằng cách đặt hàng các giá trị dữ liệu theo thứ tự tăng dần (nhỏ nhất đến lớn nhất), sau đó dán nhãn giá trị nhỏ nhất là thứ hạng 1. Cách khác, giá trị lớn nhất đặt hàng dữ liệu theo thứ tự giảm dần (lớn nhất đến nhỏ nhất) và gán giá trị lớn nhấtthứ hạng của 1.ordering the data values in ascending order (smallest to largest), then labeling the smallest value as rank 1. Alternatively, Largest value orders the data in descending order (largest to smallest), and assigns the largest value the rank of 1.

Làm cách nào để gán thứ hạng trong gấu trúc?

Max: Xếp hạng cao nhất trong nhóm.Đầu tiên: xếp hạng được gán theo thứ tự chúng xuất hiện trong mảng.Dense: Thích 'Min', nhưng thứ hạng luôn tăng thêm 1 giữa các nhóm ...
Giữ: Gán cấp bậc NAN cho các giá trị NAN ..
Top: Gán thứ hạng thấp nhất cho các giá trị NAN ..
Dưới cùng: Gán thứ hạng cao nhất cho các giá trị NAN ..

Làm thế nào để bạn xếp một mảng trong Python?

Chức năng Arange (Len (Array)) được sử dụng để xếp hạng mọi phần tử trong mảng.NP.Array () được sử dụng để tạo mảng của chúng tôi.. np. array() is used to create our array.

Làm thế nào để bạn xếp hạng một chuỗi trong Python?

Trong Python, có hai cách, Sắp xếp () và Sắp xếp (), để sắp xếp danh sách (danh sách) theo thứ tự tăng dần hoặc giảm dần.Nếu bạn muốn sắp xếp chuỗi (str) hoặc bộ dữ liệu (tuple), hãy sử dụng Sắp xếp ().use sorted() .