Làm thế nào để bạn xếp hạng trong một nhóm trong python?

Hàm xếp hạng Pandas có thể được sử dụng để xếp hạng dữ liệu của bạn và thể hiện một hàm khả thi tương đương với hàm ROW_NUMBER của SQL. Trong hướng dẫn này, bạn sẽ học cách sử dụng hàm xếp hạng bao gồm cách xếp hạng toàn bộ khung dữ liệu hoặc chỉ một số cột khác nhau. Bạn sẽ học cách sử dụng các tham số khác nhau mà chức năng xếp hạng Pandas cung cấp. Điều này cho phép bạn thay đổi thứ tự xếp hạng và cách xử lý các giá trị bằng nhau trong bảng xếp hạng của chúng. Bạn cũng sẽ tìm hiểu cách xếp hạng khung dữ liệu Pandas khi được kết hợp với dữ liệu được nhóm. Bạn sẽ xem qua một ví dụ thực tế về cách chỉ chọn những hàng có giá trị cao nhất của một nhóm

Câu trả lời nhanh. Pandas 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 Xếp hạng dữ liệu của bạn

Phương pháp Pandas
# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 hoạt động như thế nào

Mục lục

  • Hiểu phương pháp xếp hạng gấu trúc
  • Đang tải một khung dữ liệu Pandas mẫu
  • Xếp hạng cơ bản của Pandas Dataframe của bạn
  • Khung dữ liệu xếp hạng gấu trúc với thứ tự sắp xếp ngược
  • Khung dữ liệu xếp hạng gấu trúc với các phương pháp khác nhau
  • Khung dữ liệu xếp hạng gấu trúc với Groupby [Xếp hạng được nhóm]
  • Khung dữ liệu xếp hạng gấu trúc với tỷ lệ phần trăm [Xếp hạng chuẩn hóa]
  • Pandas Chỉ xếp hạng các cột số trong một khung dữ liệu
  • Sự kết luận

Hiểu phương pháp xếp hạng gấu trúc

Phương thức 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 của Pandas rất giống với hàm cửa sổ ROW_NUMBER[] có trong SQL. Nó cho phép bạn xếp hạng dữ liệu của mình theo nhiều cách khác nhau. Nhìn bề ngoài, chức năng trông tương đối đơn giản. Tuy nhiên, có rất nhiều điều phức tạp ẩn dưới bề mặt và bài đăng này sẽ khám phá tất cả

Chúng ta hãy xem cú pháp cơ bản của phương pháp xếp hạng Pandas để xem những đối số nào có sẵn cho chúng ta

import pandas as pd
df.rank[
    axis = 0,
    method = 'average',
    numeric_only = True,
    na_option = 'keep',
    ascending = True,
    pct = False
]

Hãy chia nhỏ các lập luận này ra một chút nữa, để xem cách chúng ta có thể sử dụng chúng để đạt được kết quả mong muốn khi xếp hạng dữ liệu của mình

  • # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    4. xác định chỉ mục nào sẽ định hướng xếp hạng trong [hàng hoặc cột]
  • # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    5. cách xếp hạng các nhóm bản ghi có cùng giá trị
  • # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    6. nếu toàn bộ khung dữ liệu đang được xếp hạng, có chỉ bao gồm các cột số hay không
  • # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    7. cách xếp hạng 
    # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    8 giá trị
  • # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    9. các phần tử có nên được xếp theo thứ tự tăng dần hay không
  • # Loading a Sample Pandas Dataframe for the tutorial
    import pandas as pd
    
    df = pd.DataFrame.from_dict[{
        'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
        'Count': [100, 100, 105, 95, 75, 150],
        'Score': [22, 33, 11, 55, 77, 99] 
    }]
    
    print[df.head[]]
    
    # Returns:
    #    Name  Count  Score
    # 0   Nik    100   22.0
    # 1  Kate    100   33.0
    # 2  Evan    105   11.0
    # 3  Kyra     75    NaN
    # 4  Piet     75   77.0
    00. có hiển thị thứ hạng trả về ở dạng phần trăm hay không [i. e. , chuẩn hóa thứ hạng thành giá trị 1]

Ở đây, chúng ta có thể thấy rằng phương pháp Pandas

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 mang đến cho chúng ta sự linh hoạt cao, đồng thời cung cấp một lượng lớn các giá trị mặc định của đối số để đảm bảo tính nhất quán chung

Một trong những đối số rất thú vị là đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
5, cung cấp cho chúng ta một số tùy chọn về cách xử lý các giá trị trùng lặp [i. e. , giá trị 'gắn']. Ví dụ: chúng tôi có thể muốn xếp hạng các giá trị đó giống nhau hoặc lấy giá trị trung bình của chúng. Trong phần sau, chúng ta sẽ đi sâu vào vấn đề này một cách chi tiết hơn để đảm bảo bạn nhận được kết quả như mong muốn

Hãy bắt đầu bằng cách tải một khung dữ liệu Pandas mẫu để giúp theo dõi cùng với

Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas

Đang tải một khung dữ liệu Pandas mẫu

Nếu bạn muốn làm theo từng dòng hướng dẫn này, vui lòng tải khung dữ liệu Pandas mẫu bên dưới. Nếu bạn có khung dữ liệu của riêng mình để theo dõi, điều đó cũng thật tuyệt

Hãy xem khung dữ liệu của chúng ta trông như thế nào bằng cách tải nó trước rồi in ra năm bản ghi đầu tiên, sử dụng phương thức 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
03 của khung dữ liệu

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0

Chúng ta có thể thấy rằng khung dữ liệu của chúng ta có ba cột. 1 với giá trị chuỗi và 2 với giá trị số. Bây giờ chúng tôi có một khung dữ liệu để làm việc, hãy bắt đầu xếp hạng dữ liệu của chúng tôi

Bạn muốn tìm hiểu cách sử dụng hàm Python

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
04 để lặp qua hai danh sách?

Xếp hạng cơ bản của Pandas Dataframe của bạn

Cách dễ nhất để áp dụng Pandas _______01 cho toàn bộ khung dữ liệu với tất cả các đối số mặc định

Hãy xem điều gì sẽ xảy ra khi chúng ta làm điều này với khung dữ liệu của chúng ta, df

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
0

Trong ví dụ trên, chúng tôi đã áp dụng phương thức 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 cho toàn bộ khung dữ liệu của mình. Hãy xem điều gì đã xảy ra khi chúng ta làm điều này

  • Cột chuỗi được xếp theo thứ tự bảng chữ cái, theo thứ tự tăng dần
  • Các giá trị bị thiếu được xếp hạng là NaN, nghĩa là về cơ bản chúng bị bỏ qua trong bảng xếp hạng
  • Các mục tương đương được xếp hạng theo phương pháp 'trung bình', nghĩa là các giá trị của thứ hạng được tính trung bình

Bây giờ, hãy xem làm thế nào chúng ta có thể xếp hạng chỉ một cột duy nhất. Phương thức Pandas 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 được thiết kế theo cách nó trả về cùng loại với đối tượng gọi phương thức – điều này có nghĩa là phương thức sẽ trả về một khung dữ liệu nếu một khung dữ liệu được truyền vào và một chuỗi [hoặc một cột] khi một khung dữ liệu được truyền vào.

Bây giờ chúng ta hãy xem làm thế nào chúng ta có thể vượt qua chỉ một cột duy nhất và xem thứ hạng thực sự diễn ra như thế nào. Chúng tôi sẽ tạo một cột mới, 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
09, cung cấp thứ hạng cho cột 
# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
20. Hãy xem làm thế nào chúng ta có thể làm điều này

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
2

Chúng ta có thể thấy ở đây một cột mới được tạo cung cấp cài đặt mặc định cho thứ hạng của cột 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
20

Trong các phần sau, bạn sẽ tìm hiểu cách thay đổi các đối số của phương thức 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 để sửa đổi hành vi của nó

Bạn muốn tìm hiểu thêm về vòng lặp for Python? . Thay vào đó, bạn muốn xem một video?

Khung dữ liệu xếp hạng gấu trúc với thứ tự sắp xếp ngược

Theo mặc định, phương thức 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 của Pandas sẽ xếp hạng dữ liệu theo thứ tự tăng dần, nghĩa là các mục có giá trị thấp hơn sẽ được xếp hạng thấp hơn [i. e. , bắt đầu từ 1]. Nếu bạn muốn thay đổi hành vi này và sắp xếp các giá trị theo thứ tự giảm dần, chúng ta có thể đặt tham số 
# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
24

Hãy xem điều này trông như thế nào khi chúng ta xếp hạng cùng một cột theo các thứ tự khác nhau

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
8

Chúng ta có thể thấy ở đây rằng các giá trị được xếp hạng bắt đầu ở các đầu khác nhau, trong khi các giá trị NaN bị thiếu vẫn được xử lý giống nhau

Trong phần tiếp theo, bạn sẽ tìm hiểu cách xếp hạng các mục bằng nhau theo các phương pháp khác nhau bằng cách sử dụng đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
5

Bạn muốn tìm hiểu thêm về chuỗi f Python?

Khung dữ liệu xếp hạng gấu trúc với các phương pháp khác nhau

Không có gì lạ khi có dữ liệu có giá trị bằng nhau. Thông thường, điều này không gây ra bất kỳ vấn đề nào, nhưng khi mục đích của bạn là sử dụng Pandas để xếp hạng dữ liệu của mình, thì các giá trị tương đương cần được cho biết cách sắp xếp. Đây là lúc đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
5 xuất hiện

Đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
5 của phương thức xếp hạng Pandas có một số tùy chọn khác nhau. Hãy xem nhanh chúng

  • 'trung bình'. thứ hạng trung bình của nhóm [e. g. , nếu tồn tại hai giá trị ở hạng 7, thì mỗi giá trị đó sẽ được gán giá trị là 7. 5]
  • 'phút'. trả về thứ hạng thấp nhất trong nhóm và gán nó cho từng giá trị
  • 'tối đa'. trả về thứ hạng cao nhất trong nhóm và gán nó cho từng giá trị
  • 'Đầu tiên'. xếp hạng được chỉ định theo thứ tự xuất hiện trong khung dữ liệu
  • 'ngu độn'. tương tự như phương pháp 'min', nhưng thứ hạng luôn tăng 1

Nhìn bề ngoài, những giá trị này có vẻ không phải là trực quan nhất. Cách dễ nhất để hiểu chúng là tạo bảng xếp hạng cho từng phương pháp

Hãy tạo khung dữ liệu Pandas với mỗi phương pháp xếp hạng để khám phá tốt hơn đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
5

import pandas as pd
df.rank[
    axis = 0,
    method = 'average',
    numeric_only = True,
    na_option = 'keep',
    ascending = True,
    pct = False
]
3

Trong khung dữ liệu mẫu ở trên, chúng ta có thể thấy các sắc thái của các phương pháp khác nhau có sẵn để xếp hạng dữ liệu của bạn theo

Trong phần tiếp theo, bạn sẽ tìm hiểu cách xếp hạng dữ liệu trong một nhóm

Bạn muốn tìm hiểu thêm về cách tính căn bậc hai trong Python?

Khung dữ liệu xếp hạng gấu trúc với Groupby [Xếp hạng được nhóm]

Một ứng dụng tuyệt vời của phương pháp

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 Gấu trúc là có thể áp dụng nó cho một nhóm. Điều này có nhiều ứng dụng thực tế như có thể chọn giá trị thấp nhất hoặc cao nhất vào một ngày cụ thể. Để tìm hiểu thêm về phương pháp Pandas
# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
80, hãy xem hướng dẫn chuyên sâu của tôi trên YouTube

Đối với ví dụ này, hãy tải một khung dữ liệu khác

import pandas as pd
df.rank[
    axis = 0,
    method = 'average',
    numeric_only = True,
    na_option = 'keep',
    ascending = True,
    pct = False
]
6

Hãy xem cách chúng tôi có thể nhóm dữ liệu của mình theo ngày và sau đó xếp hạng theo cột Doanh số

import pandas as pd
df.rank[
    axis = 0,
    method = 'average',
    numeric_only = True,
    na_option = 'keep',
    ascending = True,
    pct = False
]
7

Đây là một ví dụ phức tạp hơn một chút – hãy chia nhỏ những gì chúng ta đã làm ở đây

  1. Chúng tôi đã chỉ định một cột mới để xếp hạng doanh số của chúng tôi theo ngày
  2. Cột này dựa trên việc nhóm dữ liệu của chúng tôi trước tiên theo Ngày và sau đó chỉ chọn cột Doanh số
  3. Sau đó, chúng tôi xếp hạng cột được nhóm kết quả đó theo thứ tự giảm dần

Từ đó, chúng tôi có thể dễ dàng chọn Nhân viên bán hàng hàng đầu theo ngày, bằng cách lọc khung dữ liệu Pandas của chúng tôi. Để tìm hiểu thêm về cách chọn dữ liệu trong Pandas, hãy xem hướng dẫn của tôi tại đây

Hãy xem làm thế nào chúng ta có thể làm điều này

import pandas as pd
df.rank[
    axis = 0,
    method = 'average',
    numeric_only = True,
    na_option = 'keep',
    ascending = True,
    pct = False
]
8

Khi chúng tôi lọc khung dữ liệu Pandas của mình, chúng tôi có thể dễ dàng xem Nhân viên bán hàng hàng đầu theo ngày

Trong phần tiếp theo, bạn sẽ tìm hiểu cách xếp hạng khung dữ liệu Pandas của mình theo tỷ lệ phần trăm, nghĩa là xếp hạng chuẩn hóa

Bạn muốn tìm hiểu cách lấy phần mở rộng của tệp bằng Python?

Khung dữ liệu xếp hạng gấu trúc với tỷ lệ phần trăm [Xếp hạng chuẩn hóa]

Một thuộc tính tuyệt vời khác của phương pháp Pandas

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 là chúng ta có thể chuẩn hóa thứ hạng của mình thành giá trị từ 0 đến 1. Mặc dù điều này có vẻ tầm thường, nhưng nó cho phép chúng tôi so sánh thứ hạng tối thiểu và tối đa trên các cột khác nhau, ngay cả khi chúng có số lượng giá trị duy nhất khác nhau

Chúng ta có thể áp dụng phiên bản xếp hạng chuẩn hóa này bằng cách sử dụng đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
00. Hãy xem cách chúng ta có thể áp dụng điều này trong Python và Pandas

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1

Chúng ta có thể thấy ở đây rằng tất cả các cột xếp hạng không vượt quá 1. Khi chúng tôi thay đổi các tham số khác, như được hiển thị ở trên, thì chúng tôi có thể thay đổi bước qua các giá trị tương tự

Trong phần cuối cùng bên dưới, bạn sẽ tìm hiểu cách chỉ xếp hạng các cột số trong khung dữ liệu Pandas

Cần kiểm tra xem một khóa có tồn tại trong từ điển Python không?

Pandas Chỉ xếp hạng các cột số trong một khung dữ liệu

Khi xếp hạng toàn bộ khung dữ liệu, bạn có thể bỏ qua việc xếp hạng các cột không phải là số. Điều này là do xếp hạng dựa trên sắp xếp theo thứ tự bảng chữ cái không thực sự có cùng trọng số như xếp hạng theo cột số

Hãy xem cách chúng ta có thể sử dụng đối số 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
6 để chỉ xếp hạng các cột số

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
0

Chúng ta có thể thấy rằng khi chúng ta yêu cầu Pandas chỉ xếp hạng các cột số, nó sẽ không trả về bất kỳ cột nào không phải là số

Cần tự động đổi tên tập tin? . Hơn cả một người học trực quan, toàn bộ hướng dẫn cũng có sẵn dưới dạng video trong bài đăng

Sự kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng phương pháp Pank 

# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
1 để xếp hạng dữ liệu Pandas của mình. Bạn đã học cách xếp hạng chỉ một cột hoặc toàn bộ khung dữ liệu của mình. Bạn cũng đã học cách thay đổi thứ tự sắp xếp của bảng xếp hạng và cách xếp hạng bằng các phương pháp khác nhau, bao gồm xếp hạng chuẩn hóa [theo tỷ lệ trên 1]. Cuối cùng, bạn đã học cách xếp hạng khung dữ liệu Pandas của mình khi dữ liệu được nhóm bằng phương pháp
# Loading a Sample Pandas Dataframe for the tutorial
import pandas as pd

df = pd.DataFrame.from_dict[{
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra', 'Piet', 'Maya'],
    'Count': [100, 100, 105, 95, 75, 150],
    'Score': [22, 33, 11, 55, 77, 99] 
}]

print[df.head[]]

# Returns:
#    Name  Count  Score
# 0   Nik    100   22.0
# 1  Kate    100   33.0
# 2  Evan    105   11.0
# 3  Kyra     75    NaN
# 4  Piet     75   77.0
80, cũng như cách giới hạn xếp hạng của bạn chỉ ở các cột số

Làm cách nào tôi có thể lấy số hàng trong gấu trúc?

Bạn có thể sử dụng len[df. index] để tìm số hàng trong pandas DataFrame, df. index trả về RangeIndex[start=0, stop=8, step=1] và sử dụng nó trên len[] để lấy số lượng.

Giá trị mặc định của phương thức tham số của thứ hạng chức năng là gì?

Thông số

Python gấu trúc ở đâu?

Phương thức Pandas where[] được dùng để kiểm tra khung dữ liệu cho một hoặc nhiều điều kiện và trả về kết quả tương ứng . Theo mặc định, các hàng không thỏa mãn điều kiện được điền bằng giá trị NaN. Thông số. điều kiện. Một hoặc nhiều điều kiện để kiểm tra khung dữ liệu cho.

Chủ Đề