Python之读取Excel

系统 1677 0

介绍

现在交给你一份2010年美国各州县人口普查表:censuspopdata.xlsx。共72864条记录。

每一行代表一个县某统计区的人口数。

需要你统计出:各县统计区数量和人口数。

表格内容长这样:

Python之读取Excel_第1张图片

 

通过本练习你讲学习到:

  1. python如何读取excel内容
  2. 使用字典存储excel统计内容
  3. 利用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, {})
    # 确保县在州中存在
    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 长这样:

Python之读取Excel_第2张图片

 

读取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元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论