close

一、前言

存出多個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來接收最新資訊:

https://t.me/joinchat/VUUuDt67Uq5l6CIQ

arrow
arrow

    恩哥Python 發表在 痞客邦 留言(0) 人氣()