首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试查找特定范围内的出现次数

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

Stack Overflow用户
提问于 2019-09-11 03:34:08
回答 2查看 52关注 0票数 0

我已经导入了一个CSV文件,包括grad_year,grad_major,grad_gender,gpa等研究生数据。

我们的目标是获得排名前100的GPA,并确定GPA排名前100的毕业生中有多少是女性

我试着对GPA排名前100位的数据进行排序,但之后我被困在了如何从这一点过滤女性的问题上

代码语言:javascript
复制
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_gender ==为“Female”的实体的sort_gpa

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-11 03:37:14

使用锁定函数https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html

代码语言:javascript
复制
sort_gpa.loc[sort_gpa['grad_gender']=='Female']
票数 2
EN

Stack Overflow用户

发布于 2019-09-11 04:22:44

要获得按GPA排序的前100名,除了您还可以传递一个额外的参数ascending来更改排序顺序之外,您的方法是正确的:

代码语言:javascript
复制
# sort with highest GPAs appearing at the top
sort_gpa.sort_values(by='gpa', ascending=False)

要获取DataFrame的前100行,可以使用head (或像处理后100行一样使用tail )。但另一种常见的方法是使用.iloc,它允许您按位置抓取行:

代码语言:javascript
复制
# gets the first 100 rows, positions 0 thru 99
sort_gpa.iloc[:100]

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

代码语言:javascript
复制
# returns the counts of all values that appear in the column
sort_gpa['grad_gender'].value_counts()

把所有这些放在一起,你就有了:

代码语言:javascript
复制
top_100 = sort_gpa.sort_values(by='gpa', ascending=False).iloc[:100]
top_100['grad_gender'].value_counts()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57877197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档