Để thêm cột chứa xếp hạng của từng hàng trong DataFrame cung cấp, giúp sắp xếp DataFrame và xác định xếp hạng của phần tử cụ thể, ví dụ:
DataFrame của chúng ta
| Tên Thời gian chơi (giờ) | Đánh giá | |||
|---|---|---|---|---|
| 0 | Call Of Duty | 45 | Better than Average | |
| 1 | Total Overdose | 46 | Good | |
| 2 | GTA3 | 52 | Best | |
| 3 | Bully | 22 | Average | |
Kết quả
| Tên Thời gian chơi (giờ) | Xếp hạng đánh giá | |||
|---|---|---|---|---|
| 0 | Call Of Duty | 45 | Better than Average | 3.0 |
| 1 | Total Overdose | 46 | Good | 2.0 |
| 2 | GTA3 | 52 | Best | 1.0 |
| 3 | Bully | 22 | Average | 4.0 |
Như bạn thấy, xếp hạng là số nguyên nhưng có phần thập phân, nghĩa là xếp hạng có thể là số thực. Điều này xảy ra khi nhiều phần tử có cùng xếp hạng, lúc này xếp hạng bị chia giữa các phần tử, dẫn đến số thực.
Làm sao gán xếp hạng cho DataFrame?
Để gán xếp hạng cho các phần tử DataFrame, ta dùng hàm tích hợp của thư viện pandas là .rank(). Truyền tiêu chí xếp hạng vào hàm, nó trả về cột mới chứa xếp hạng.
Ví dụ
Mã sử dụng hàm .rank():
import pandas as pd
games = {'Name': ['Call Of Duty', 'Total Overdose', 'GTA 3', 'Bully'],
'Play Time(in hours)': ['45', '46', '52', '22'],
'Rate': ['Better than Average', 'Good', 'Best', 'Average']}
df = pd.DataFrame(games)
df['ranking'] = df['Play Time(in hours)'].rank(ascending=0)
print(df)
# Hello World program in Python
print("Hello World!")
Kết quả
Name Play Time(in hours) Rate ranking 0 Call Of Duty 45 Better than Average 3.0 1 TotalOverdose 46 Good 2.0 2 GTA 3 52 Best 1.0 3 Bully 22 Average 4.0
Giải thích mã
Trong mã này, chúng ta dùng hàm tích hợp của pandas để xếp hạng từng phần tử trong DataFrame. Ta dùng cột 'Play Time(in hours)' làm tiêu chí. Thêm cột 'ranking' và dùng .rank() truyền tên cột cần xếp hạng. Khi cột mới tạo xong, in DataFrame.
Kết luận
Trong hướng dẫn này, chúng ta xếp hạng hàng trong DataFrame và in dữ liệu dùng pandas và hàm tích hợp. Xếp hạng hàng pandas DataFrame là quá trình dễ dàng, nhưng cần làm đúng phương pháp.