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