Python之读取Excel

介绍

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

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

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

表格内容长这样:

 

通过本练习你讲学习到:

  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 长这样:

 

读取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

 

 

posted @   一锤子技术员  阅读(6)  评论(0编辑  收藏  举报  
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示