Python - 对 Pandas DataFrame 的行进行排名

pythonserver side programmingprogramming

添加一个包含所提供数据框中每行排名的列,这将有助于我们对数据框进行排序并确定特定元素的排名,例如 −

我们的数据框

Name Play Time (in hours)Rate
0Call Of Duty45Better than Average
1Total Overdose46Good
2GTA352Best
3Bully22Average

输出

Name Play Time (in hours)Rate ranking
0Call Of Duty45Better than Average3.0
1Total Overdose46Good2.0
2GTA352Best1.0
3Bully22Average4.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

上述代码的解释

在此代码中,我们只是使用 panda 库的内置函数对给定数据框中存在的每个元素进行排序。我们可以使用最佳标准对列"播放时间(以小时为单位)"的元素进行排序。

现在我们在数据框中添加一个名为"ranking"的列,并在其中使用我们的 .rank() 函数并传递我们需要对元素进行排名的列名(在本例中,它是播放时间(以小时为单位)列),现在当我们的新列创建时,我们会打印数据框。

结论

在本教程中,我们对数据框中的行进行排名,然后使用 pandas 库及其内置函数打印数据。对 pandas 数据框的行进行排名是一个简单的过程,但您需要正确遵循上述方法。


相关文章


有用资源