繁体   English   中英

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

[英]Trying to find number of occurrences within a specific range

我已导入CSV文件,其中包括grad_year,grad_major,grad_gender,gpa等研究生数据...

目的是取得GPA前100名,并确定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_gender =='Female'的实体来过滤sort_gpa

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

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

要获得按GPA排序的前100名,除了您还可以传入一个ascending更改排序顺序的附加参数外,您都必须正确设置:

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

要获取DataFrame的前100行,可以使用head (或对最后100行的操作使用tail )。 但是另一种常见的方式是使用.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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM