介紹
現(xiàn)在交給你一份2010年美國(guó)各州縣人口普查表:censuspopdata.xlsx。共72864條記錄。
每一行代表一個(gè)縣某統(tǒng)計(jì)區(qū)的人口數(shù)。
需要你統(tǒng)計(jì)出:各縣統(tǒng)計(jì)區(qū)數(shù)量和人口數(shù)。
表格內(nèi)容長(zhǎng)這樣:
?
通過(guò)本練習(xí)你講學(xué)習(xí)到:
- python如何讀取excel內(nèi)容
- 使用字典存儲(chǔ)excel統(tǒng)計(jì)內(nèi)容
- 利用pprint格式化字典結(jié)構(gòu)
?
?
代碼
新建:readCensusExcel.py
#! python3
# readCensusExcel.py - Tabulates population and number of census tracts for
# each county.
import pprint, openpyxl
print('打開(kāi)工作簿...')
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, {})
# 確保縣在州中存在
countyData[state].setdefault(county, {'tracts': 0, 'pop': 0})
# 每一行代表一個(gè)縣某統(tǒng)計(jì)區(qū)的人口數(shù)
countyData[state][county]['tracts'] += 1
# 追加縣的人口數(shù)
countyData[state][county]['pop'] += int(pop)
# 將結(jié)果寫(xiě)入文件
print('寫(xiě)入結(jié)果...')
resultFile = open('census2010.py', 'w')
resultFile.write('allData = ' + pprint.pformat(countyData))
resultFile.close()
print('完成.')
生成的census2010.py 長(zhǎng)這樣:
?
讀取census2010.py獲取指定縣的統(tǒng)計(jì)區(qū)數(shù)量和人口數(shù):
新建:read-census2010.py
#! python3
# 讀取人口普查統(tǒng)計(jì)表
import os
import census2010
census2010.allData['AK']['Anchorage']
anchoragePop = census2010.allData['AK']['Anchorage']['pop']
anchorageTracts = census2010.allData['AK']['Anchorage']['tracts']
print('2010年Anchorage的人口數(shù):' + str(anchoragePop)+',統(tǒng)計(jì)區(qū)數(shù):'+ str(anchorageTracts))
輸出:
2010年Anchorage的人口數(shù):291826,統(tǒng)計(jì)區(qū)數(shù):55
?
項(xiàng)目代碼和資源地址
https://gitee.com/indexman/python-core
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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