我有一個來自美國的人口普查數據的熊貓dataframe
。專欄包括STNAME
(州名)CTYNAME
(縣名)以及各年份在人口普查報告中收集的各種不同數據欄。熊貓數據框由3列和標準搜索
我在尋找前三名人口最多的州,只包括每個州中前三名人口最多的州。
這是我的當前代碼,扶正原始數據幀一個比特,並只包括什麼是相關的問題:
def answer():
census_df50 = census_df[census_df['SUMLEV'] == 50]
columns = ['STNAME', 'CTYNAME', 'CENSUS2010POP']
c = census_df50[columns]
return c
print(answer())
,這裏是在該終端打印的數據幀的一個示例:
STNAME CTYNAME CENSUS2010POP
1 Alabama Autauga County 54571
2 Alabama Baldwin County 182265
3 Alabama Barbour County 27457
4 Alabama Bibb County 22915
5 Alabama Blount County 57322
6 Alabama Bullock County 10914
7 Alabama Butler County 20947
8 Alabama Calhoun County 118572
它由州和縣按字母順序列出,所以這裏只顯示縣名的阿拉巴馬人口普查數據,但數據框中有3000多行(每縣一個,州有多個條目)
我的方法是根據CENSUS2016POP
值(表示2010年人口的整數)編寫一個函數,找到CTYNAME
中的前3個縣,併爲STNAME
列中的每個州查找。然後讓該函數按照這個標準返回前3個狀態的字符串。然而,如何實現這一點卻相當迷茫。
我敢肯定,我應該嘗試使用這些功能.groupby()
,.set_index()
和.nlargest()
的組合。
任何幫助將不勝感激!
如果您將來可以發佈您的數據樣本,那將會很棒。 –