close

一、前言

前面講解寫入到舊有的excel檔的不同sheet裡面,發現有一直往後新增sheet的問題,

不會取代原本的sheet,即使sheet_name一樣,但在舊有的excel會繼續往後新增,

【Pandas】存出多個df到同excel檔不同Sheet

 

二、解決辦法

這邊來告訴大家如何解決,其實觀念很簡單,不就把舊的sheet刪除,在重寫一新的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裡面,取代原本sheet
path = os.path.join(os.getcwd(), '舊股票資料.xlsx') # 原有excel路徑
with pandas.ExcelWriter(engine='openpyxl', path=path, mode='a') as writer: # mode='a'現有檔案讀寫
    # 先刪除原來的sheet
    book = writer.book
    book.remove(book['2330']) # 刪除2330 sheet
    book.remove(book['2317'])
    # 寫入新資料到sheet
    df_2330.to_excel(writer, sheet_name='2330') # 存到指定的sheet
    df_2317.to_excel(writer, sheet_name='2317') # 存到指定的sheet

book = writer.book把excel的sheet抽出來之後,用book.remove(book['2330'])把指定sheet刪除,

如果原本每面沒有這個sheet可能會報錯,這時候可以try except或者自己先新增進去就可以了~

 

三、後記

ok!就多那幾行而已~

 

想要即時訂閱最新文章:

https://forms.gle/MdXmiF2HgHhNChL46

或者訂閱Telegram來接收最新資訊:

https://t.me/joinchat/VUUuDt67Uq5l6CIQ

arrow
arrow

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