尝试查找特定范围内出现的次数

2024-05-19 14:43:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经导入了一个CSV文件,包括研究生数据,如毕业年份,研究生专业,研究生性别,平均绩点等。。。你知道吗

目标是获得前100个GPA,并确定有多少GPA前100的毕业生是女性

我试过对前100个GPA的数据进行分类,但我却被困在如何从这一点上筛选出女性

import pandas as pd 

grads_df = pd.read_csv('Users/Sas0908/Downloads/grads.csv')

sort_gpa = grads_df.sort_values(by=['gpa']).tail(100)

在这里,我被卡住了,因为我不确定如何只通过那些拥有grad\u gender=='女性'的实体过滤sort\u gpa


Tags: 文件csv数据df专业sortpd年份
2条回答

要按GPA对前100名进行排序,除了可以传入另一个参数ascending以更改排序顺序外,其他都是正确的:

# sort with highest GPAs appearing at the top
sort_gpa.sort_values(by='gpa', ascending=False)

要获取数据帧的前100行,可以使用head(或tail,就像对最后100行所做的那样)。但另一种常见的方法是使用.iloc,它允许您按位置抓取行:

# gets the first 100 rows, positions 0 thru 99
sort_gpa.iloc[:100]

最后,你想知道女性和男性的数量,你可以在一列中使用.value_counts()

# returns the counts of all values that appear in the column
sort_gpa['grad_gender'].value_counts()

综上所述,你有:

top_100 = sort_gpa.sort_values(by='gpa', ascending=False).iloc[:100]
top_100['grad_gender'].value_counts()

使用loc功能 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html

sort_gpa.loc[sort_gpa['grad_gender']=='Female']

相关问题 更多 >