我在Python上學習熊貓,似乎無法完成這個問題。有6個人口專欄,POPESTIMATE2010到2016年的POPESTIMATE,我需要找到這些年間人口變化最大的縣。 (例如,如果5年期間的縣人口是100,120,80,105,100,130,那麼其在期間的最大變化將是| 130-80 | = 50.)發現多個縣的人口差異最大?
我所做的到目前爲止,被管理操作數據到一個數組和列表,但我不知道這是更好的解決這個問題:當我返回數據
import numpy as np
def answer_seven():
sumlev = census_df.SUMLEV.values == 50
data = census_df[['POPESTIMATE2010', 'POPESTIMATE2011','POPESTIMATE2012','POPESTIMATE2013','POPESTIMATE2014','POPESTIMATE2015', 'CTYNAME']].values[sumlev]
s = pd.Series(data[:, 0], [data[:, 1], data[:, 2], data[:, 3], data[:, 4], data[:, 5], data[:, 6]], dtype=np.int64)
return data
answer_seven()
輸出:
array([[54660, 55253, 55175, ..., 55290, 55347, 'Autauga County'],
[183193, 186659, 190396, ..., 199713, 203709, 'Baldwin County'],
[27341, 27226, 27159, ..., 26815, 26489, 'Barbour County'],
...,
[21102, 20912, 20989, ..., 20903, 20822, 'Uinta County'],
[8545, 8469, 8443, ..., 8316, 8328, 'Washakie County'],
[7181, 7114, 7065, ..., 7185, 7234, 'Weston County']], dtype=object)
而且我列出返回列表時的列表:
55253 55175 55038 55290 55347 Autauga County 54660
186659 190396 195126 199713 203709 Baldwin County 183193
27226 27159 26973 26815 26489 Barbour County 27341
22733 22642 22512 22549 22583 Bibb County 22861
57711 57776 57734 57658 57673 Blount County 57373
10629 10606 10628 10829 10696 Bullock County 10887
20673 20408 20261 20276 20154 Butler County 20944
117768 117286 116575 115993 115620 Calhoun County 118437
33993 34075 34153 34052 34123 Chambers County 34098
26080 26023 26084 25995 25859 Cherokee County 25976
43739 43697 43795 43921 43943 Chilton County 43665
13593 13543 13378 13289 13170 Choctaw County 13841
25570 25144 25116 24847 24675 Clarke County 25767
13670 13456 13467 13538 13555 Clay County 13880
14971 14921 15028 15072 15018 Cleburne County 14973
50448 51173 50755 50831 51211 Coffee County 50177
54443 54472 54471 54480 54354 Colbert County 54514
13121 12996 12875 12662 12672 Conecuh County 13208
11348 11195 11059 10807 10724 Coosa County 11758
38060 37818 37830 37888 37835 Covington County 37796
13896 13951 13932 13948 13963 Crenshaw County 13853
80469 80374 80756 81221 82005 Cullman County 80473
50109 50324 49833 49501 49565 Dale County 50358
43178 42777 42021 41662 41131 Dallas County 43803
71387 70942 70869 71012 71130 DeKalb County 71142
80012 80432 80883 81022 81468 Elmore County 79465
38213 38034 37857 37784 37789 Escambia County 38309
104236 104235 103852 103452 103057 Etowah County 104442
17062 16960 16857 16842 16759 Fayette County 17231
31729 31648 31507 31592 31696 Franklin County 31734
...
我看了多個論壇帖子,但我找不到真正與此相關的任何內容。我知道最好的辦法是創建一個「最高」列和一個「最低」列,然後找到差異最大的縣,但我不知道如何在一個區域內找到最大/最小值陣列。真的很感謝幫助!
感謝您的幫助,但是我得到的代碼錯誤是在分配之前引用的'局部變量'maxchange'。希望能夠幫助你如何將你的代碼整合到工作 –
對不起,忘了複製'maxchange'的初始化。我已經更新了。 – FamousJameous