Python 用 openpyxl 模块统计 Excel 表格中的数据,以字典形式写入 py 文件
1、加载模块,设置路径,读取表格
import os
import openpyxl
import pprint
os.chdir('D:\\pySpace')
print('Opening workbook...')
wb = openpyxl.load_workbook('censuspopdata.xlsx') # 加载电子表格
sheet = wb.get_sheet_by_name('Population by Census Tract')
countyData = {}
2、f遍历所有的行, 汇总各州的每个县的统计地区数和每个县的人口数,将数据填充到字典 countyData 中。
print('Reading rows...')
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)
3、创建 py 文件,并将之前生成的字典数据写入其中。
print('Wring results...')
resultFile = open('census2010.csv', 'w')
resultFile.write('allData = ' + pprint.pformat(countyData))
resultFile.close()
print('Done.')
非学无以广才,非志无以成学。