介紹
現在交給你一份2010年美國各州縣人口普查表:censuspopdata.xlsx。共72864條記錄。
每一行代表一個縣某統計區的人口數。
需要你統計出:各縣統計區數量和人口數。
表格內容長這樣:
?
通過本練習你講學習到:
- python如何讀取excel內容
- 使用字典存儲excel統計內容
- 利用pprint格式化字典結構
?
?
代碼
新建:readCensusExcel.py
#! python3
# readCensusExcel.py - Tabulates population and number of census tracts for
# each county.
import pprint, openpyxl
print('打開工作簿...')
wb = openpyxl.load_workbook('resource/censuspopdata.xlsx')
sheet = wb['Population by Census Tract']
countyData = {}
# 填充
for row in range(2, sheet.max_row+1):
state = sheet['B' + str(row)].value
county = sheet['C' + str(row)].value
pop = sheet['D' + str(row)].value
# 確保州存在
countyData.setdefault(state, {})
# 確??h在州中存在
countyData[state].setdefault(county, {'tracts': 0, 'pop': 0})
# 每一行代表一個縣某統計區的人口數
countyData[state][county]['tracts'] += 1
# 追加縣的人口數
countyData[state][county]['pop'] += int(pop)
# 將結果寫入文件
print('寫入結果...')
resultFile = open('census2010.py', 'w')
resultFile.write('allData = ' + pprint.pformat(countyData))
resultFile.close()
print('完成.')
生成的census2010.py 長這樣:
?
讀取census2010.py獲取指定縣的統計區數量和人口數:
新建:read-census2010.py
#! python3
# 讀取人口普查統計表
import os
import census2010
census2010.allData['AK']['Anchorage']
anchoragePop = census2010.allData['AK']['Anchorage']['pop']
anchorageTracts = census2010.allData['AK']['Anchorage']['tracts']
print('2010年Anchorage的人口數:' + str(anchoragePop)+',統計區數:'+ str(anchorageTracts))
輸出:
2010年Anchorage的人口數:291826,統計區數:55
?
項目代碼和資源地址
https://gitee.com/indexman/python-core
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
