天天看點

Python 統計Excel表格中的各省人口數量 表格→集合1 [要求]2 [思路]3 [步驟]4 [代碼奉上]

1 [要求]

把Excel表中的人口按省統計

2 [思路]

  • [集合的形式 ] 适合統計 因為他 key不變 和value
  • [清單形式 ]使輸出結果為清單形式 , 失敗 不能分行 , 不能統計 無意義
Python 統計Excel表格中的各省人口數量 表格→集合1 [要求]2 [思路]3 [步驟]4 [代碼奉上]

3 [步驟]

3.1 讀入

from openpyxl import workbook
wb = openpyxl.load_workbook("003 例子 人口統計.xlsx")
ws = wb.active
           

3.2 用循環周遊每行 ,分解成 國家\省份\城市\人口

for row in range(2, ws.max_row) :
    # print(row, end=",")  # 取行号
    # 每一行  取 國家\省份
    國家=ws.cell(row=row,column=1).value
    省=ws.cell(row=row,column=2).value
    市=ws.cell(row=row,column=3).value
    人口=ws.cell(row=row,column=4).value
    print(國家,省,市,人口)
    #==================輸出============
    中國 江西省 景德鎮市 159
	中國 江西省 萍鄉市 185
	中國 江西省 九江市 473
	中國 江西省 新餘市 114
           

3.3 定義格式 – 分級組合成集合形式,到國家

接 上面代碼

# 定義格式 -- 分級組合成集合形式,到國家
  人口data.setdefault(國家,{})  # 輸出 : {'中國': {}}
  # 定義格式 -- 分級組合成集合形式,到省
  人口data[國家].setdefault(省,{"人口數量":0,"市級機關":0})  # 指派,并為0
  # 統計并求和
  人口data[國家][省]["市級機關"]+=1
  人口data[國家][省]["人口數量"]+=人口	
           

4 [代碼奉上]

# --*coding:utf-8*--
"""
[要求]
中國	江西省	景德鎮市	159
中國	江西省	萍鄉市	185
中國	江西省	九江市	473
...
中國	山東省	日照市	280
中國	山東省	萊蕪市	130
[轉換為]
{'中國': {'江西省': {'人口數量': 3952, '市級機關': 10}}}
[思路]
用集合 key不變,value累加
"""
import openpyxl
from openpyxl import workbook

# 讀入
wb = openpyxl.load_workbook("003 例子 人口統計.xlsx")
ws = wb.active
人口data = {}
人口數量=0
市級機關=0
# 定義  國家\省份\城市\人口
for row in range(2, ws.max_row) :
    # print(row, end=",")  # 取行号
    # 每一行  取 國家\省份
    國家=ws.cell(row=row,column=1).value
    省=ws.cell(row=row,column=2).value
    市=ws.cell(row=row,column=3).value
    人口=ws.cell(row=row,column=4).value
    # print(國家,省,市,人口)
    # 定義格式 -- 分級組合成集合形式,到國家
    人口data.setdefault(國家,{})  # 輸出 : {'中國': {}}
    # 定義格式 -- 分級組合成集合形式,到省
    人口data[國家].setdefault(省,{"人口數量":0,"市級機關":0})  # 指派,并為0
    # 統計并求和
    人口data[國家][省]["市級機關"]+=1
    人口data[國家][省]["人口數量"]+=人口

print(人口data)