Python - Pandas DataFrame 的行排序
新增一列包含提供的資料幀中每一行的排名,這將有助於我們對資料幀進行排序並確定特定元素的排名,例如:
我們的資料幀
| 名稱 遊戲時間(小時) | 評分 | |||
|---|---|---|---|---|
| 0 | 使命召喚 | 45 | 高於平均水平 | |
| 1 | 全面過量 | 46 | 良好 | |
| 2 | 俠盜獵車手3 | 52 | 最佳 | |
| 3 | 惡霸魯尼 | 22 | 平均 | |
輸出
| 名稱 遊戲時間(小時) | 評分排名 | |||
|---|---|---|---|---|
| 0 | 使命召喚 | 45 | 高於平均水平 | 3.0 |
| 1 | 全面過量 | 46 | 良好 | 2.0 |
| 2 | 俠盜獵車手3 | 52 | 最佳 | 1.0 |
| 3 | 惡霸魯尼 | 22 | 平均 | 4.0 |
現在,正如您在上面的示例中看到的,我們的排名是整數,但在其旁邊有一個小數,這意味著我們也可以使用實數進行排名,並且這種情況發生在資料幀中多個元素具有相同的排名時,在這種情況下,我們的排名在這些元素之間分配。因此,它們的排名是實數。
那麼我們如何將排名分配到我們的資料幀呢?
為了將排名分配到我們資料幀的元素,我們使用 Pandas 庫的內建函式,即 **.rank()** 函式。我們將根據其對元素進行排名的標準傳遞給它,此函式將在每一行的新的列中返回儲存的排名。
示例
使用 .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!");輸出
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
以上程式碼的解釋
在此程式碼中,我們只是簡單地使用 Pandas 庫的內建函式對給定資料幀中存在的每個元素進行排名。我們可以使用最佳標準根據“遊戲時間(小時)”列對元素進行排名。
現在,我們在資料幀中新增一個名為“排名”的列,並在其中使用我們的 **.rank()** 函式,並傳遞我們需要對元素進行排名的列名(在本例中,它是“遊戲時間(小時)”列),現在當我們的新列建立後,我們列印我們的資料幀。
結論
在本教程中,我們對資料幀中的行進行排名,然後使用 Pandas 庫及其內建函式列印我們的資料。對 Pandas DataFrame 進行行排序是一個簡單的過程,但您需要正確遵循上述方法。
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP