簡體   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