Pandas – 根据百分比获取前n行数据

Pandas – 根据百分比获取前n行数据

在本文中,我们将介绍如何使用Python的Pandas库,根据数据框中某一列的比例或者百分比获取前几行数据。

假设有如下的一个数据框df,其中包含两列数据,一列是学生的姓名,另一列是学生的数学成绩:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva', 'Frank'],
    'math': [90, 85, 76, 94, 80, 88]
}

df = pd.DataFrame(data)
print(df)
Python

输出如下:

       name  math
0     Alice    90
1       Bob    85
2   Charlie    76
3     David    94
4       Eva    80
5     Frank    88
Python

现在,我们需要根据数学成绩的排名获取前50%的数据,即成绩排名在前三位的学生信息。

首先,我们需要将数据框按照数学成绩进行排序:

df = df.sort_values(by=['math'], ascending=False)
print(df)
Python

输出如下:

       name  math
3     David    94
0     Alice    90
5     Frank    88
1       Bob    85
4       Eva    80
2   Charlie    76
Python

这样,我们就可以根据百分比获取前几行数据了。在Pandas库中,可以使用head()方法对数据框进行截取,从而获取前几行数据。

接下来,我们将通过代码展示如何根据百分比获取前三名学生的信息:

n = int(len(df) * 0.5)
top_n = df.head(n)
print(top_n)
Python

输出如下:

    name  math
3  David    94
0  Alice    90
5  Frank    88
Python

代码解释:

  1. n = int(len(df) * 0.5) :计算出数据框长度的50%;
  2. top_n = df.head(n):使用head()方法获取前n行数据。

除此之外,我们还可以根据实际需求获取数据框中的其他百分比数据。比如,如果需要获取前30%的数据,只需要将上面代码中的0.5替换为0.3即可。

阅读更多:Pandas 教程

总结

本文介绍了如何使用Pandas库,根据数据框中某一列的比例或者百分比获取前几行数据。根据需要,可以使用sort_values()方法对数据框进行排序,并使用head()方法进行截取获取前几行数据。这里提醒一下,需要根据实际需求计算出相应的百分比值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册