[英]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.