iT邦幫忙

3

Python學習筆記: 批次寫入Excel單一檔案多工作表及Excel多檔案

  • 分享至 

  • xImage
  •  

本文同步發表於小弟自架網站:微確幸資訊站

來源:讀取「疾病管制署資料開放平台」地區年齡性別統計表-嚴重特殊傳染性肺炎

https://ithelp.ithome.com.tw/upload/images/20230308/20122335N8lIWNr7VR.jpg

要注意上面「縣市」的欄位有「空值」,「空值」其實是境外移入的個案。

目標:

1. 將各縣市的確定病例數合計後,寫入一個Excel檔案中的各縣市工作表(一檔多工作表)。

2. 將各縣市的確定病例數合計後,寫入以各個縣市命名的各別Excel檔案中(多檔)。

先讀取資料:

import pandas as pd

url = ('https://data.cdc.gov.tw/download?resourceid=95db2a0a-6ea0-4fbc-a87e-521544755db8&dataurl=https://od.cdc.gov.tw/eic/Age_County_Gender_19Cov.csv')
df = pd.read_csv(url)

print(len(df))
print(df.columns)
df.head()

https://ithelp.ithome.com.tw/upload/images/20230308/20122335uDCHgwcxmD.jpg

將縣市等於空值的資料列刪除

df = df[~(df['縣市']=='空值')]
print(len(df))
print(df.columns)
df.head()

https://ithelp.ithome.com.tw/upload/images/20230308/201223355UH8FhhbgI.jpg

目標1:

將各縣市的確定病例數合計後,寫入一個Excel檔案中的各縣市工作表(一檔多工作表)。

# 只拿資料中的「縣市」及「確定病例數」來示範
df = df[['縣市', '確定病例數']].groupby('縣市').sum('確定病例數').reset_index()

with pd.ExcelWriter(
    "mytest.xlsx",
    mode="w",
    engine="openpyxl",
) as writer:
    for city in df['縣市']:
        sheet = df[df['縣市']==city]
        sheet.to_excel(writer, sheet_name=city, index=False)

寫入mytest.xlsx後,呈現的畫面:
https://ithelp.ithome.com.tw/upload/images/20230308/201223350Zb7cgOz2o.jpg

目標2:

將各縣市的確定病例數合計後,寫入以各個縣市命名的各別Excel檔案中(多檔)。

# 只拿資料中的「縣市」及「確定病例數」來示範
df = df[['縣市', '確定病例數']].groupby('縣市').sum('確定病例數').reset_index()

for city in df['縣市']:
    file = df[df['縣市']==city]
    file.to_excel((city + '.xlsx'), index=False)

檔案總管中,可以看到寫入的多個Excel檔案:
https://ithelp.ithome.com.tw/upload/images/20230308/2012233596oGofJawA.jpg

打開其中的「南投縣」檔案:
https://ithelp.ithome.com.tw/upload/images/20230308/20122335dREJRuVZRa.jpg


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言