一、前言
存出多個df到同excel檔不同Sheet有很多不同的方法,這邊介紹最好用也最方便的方式,這邊會介紹兩種方法,分別在不同情況下使用:
(1) 開一個新的excel並把多個df寫到同excel不同sheet
python df的資料要另存出來到一個全新的excel裡面存放,表示每使用一次會蓋過舊的excel檔案。
情境:是一次性儲存的,以後有新資料直接覆蓋沒差別,或每次更新資料連舊資料會一同更新。
(2) 寫入到舊有的excel檔的不同sheet裡面
原本舊有excel繼續使用,表示原本的excel就要存在,只是將df資料寫入到指定sheet中。
情境:可能就有sheet有函數連動等等原因,或舊資料需要保存,只想繼續新增新資料。
二、存出多個df到同excel檔不同Sheet
(1) 開一個新的excel並把多個df寫到同excel不同sheet
這樣一來就可以開一個新檔案後把資料往裡面放了,但無法在舊有excel繼續新增sheet,新excel會覆蓋過去。
程式碼:
import os
import pandas, numpy
import pandas_datareader as web
# 下載股票資料
df_2330 = web.DataReader('2330.TW', 'yahoo')
df_2317 = web.DataReader('2317.TW', 'yahoo')
# 開一個新的excel並把多個df寫到同excel不同sheet
path = os.path.join(os.getcwd(), '股票資料.xlsx') # 設定路徑及檔名
writer = pandas.ExcelWriter(path, engine='openpyxl') # 指定引擎openpyxl
df_2330.to_excel(writer, sheet_name='stock 2330') # 存到指定的sheet
df_2317.to_excel(writer, sheet_name='stock 2317') # 存到指定的sheet
writer.save() # 存檔生成excel檔案
(2) 寫入到舊有的excel檔的不同sheet裡面
但要記住你原本的excel就要存在,如此一來就可以在舊excel裡面一直放入新資料在sheet裡面。
程式碼:
import os
import pandas, numpy
import pandas_datareader as web
# 下載股票資料
df_2330 = web.DataReader('2330.TW', 'yahoo')
df_2317 = web.DataReader('2317.TW', 'yahoo')
# 寫入到舊有的excel檔的不同sheet裡面
path = os.path.join(os.getcwd(), '舊股票資料.xlsx') # 原有excel路徑
with pandas.ExcelWriter(engine='openpyxl', path=path, mode='a') as writer: # mode='a'現有檔案讀寫
# 存到指定的sheet
df_2330.to_excel(writer, sheet_name='2330')
df_2317.to_excel(writer, sheet_name='2317')
你會發現出現一個問題,就是即使sheet_name一樣,但在舊有的excel會繼續往後新增,
解決方法就是先刪除舊有的sheet在寫入新的資料(方法寫在後記)。
三、後記
解決方法就是先刪除舊有的sheet在寫入新的資料,連結請服用~
【Pandas】寫入到舊有的excel檔的不同sheet裡面,取代原本sheet:excel刪除sheet後寫入新資料方法
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
或者訂閱Telegram來接收最新資訊:
留言列表