最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Pandas生成Excel時的sheet問題的方法總結(jié)

 更新時間:2022年08月09日 09:50:36   作者:古明地覺  
估計有不少小伙伴在將 DataFrame導(dǎo)入到Excel的時候,遇到過下面這種尷尬的情況:想給一個現(xiàn)有的Excel文件追加一個sheet,結(jié)果發(fā)現(xiàn)其它的sheet都沒了等,本文就來告訴你如何解決這些問題

楔子

估計有不少小伙伴在將 DataFrame 導(dǎo)入到 Excel 的時候,都遇到過下面這種尷尬的情況:

  • 想將多個 DataFrame 導(dǎo)入到一個 Excel 文件的多個 sheet 中,但是卻發(fā)現(xiàn)生成的 Excel 文件里面只有最后一個 sheet;
  • 想給一個現(xiàn)有的 Excel 文件追加一個 sheet,結(jié)果發(fā)現(xiàn)其它的 sheet 都沒了,只剩下新追加的 sheet;

那么下面就來看看如何解決這些問題。

同時導(dǎo)入多個 sheet

如果想導(dǎo)入多個 sheet,那么肯定不能使用原來 to_excel("文件名") 的方式,那樣只會保留最后一個 sheet。我們應(yīng)該使用類 ExcelWriter 實現(xiàn):

import?pandas?as?pd

df1?=?pd.DataFrame({"a":?[1,?2],?"b":?[3,?4]})
df2?=?pd.DataFrame({"a":?[2,?3],?"b":?[4,?5]})
df3?=?pd.DataFrame({"a":?[3,?4],?"b":?[5,?6]})

#?調(diào)用pd.ExcelWriter,?需要指定mode="a",?engine="openpyxl"
#?注意:?將mode設(shè)置為"a"表示追加,?但是它要求文件必須存在,?否則報錯
"""
writer?=?pd.ExcelWriter("test.xlsx",?mode="a",?engine="openpyxl")
"""

#?因此我們需要生成這個文件,此時順便將第一個?DataFrame?導(dǎo)進(jìn)去
df1.to_excel("test.xlsx",?index=False,?sheet_name="a")

#?然后再實例化ExcelWriter
writer?=?pd.ExcelWriter("test.xlsx",?mode="a",?engine="openpyxl")

#?接下來還是調(diào)用to_excel,?但是第一個參數(shù)不再是文件名,?而是上面的writer
#?將剩下的兩個DataFrame寫進(jìn)去
df2.to_excel(writer,?index=False,?sheet_name="b")
df3.to_excel(writer,?index=False,?sheet_name="c")

#?保存并關(guān)閉writer,?寫入磁盤
writer.save()
writer.close()

執(zhí)行代碼,然后打開文件看一下。

此時我們看到結(jié)果是沒有問題的,當(dāng)然向已存在的 Excel 文件追加 sheet 也是同理。

覆蓋一個 sheet

向 Excel 文件同時寫入多個sheet,以及追加sheet,我們已經(jīng)知道該怎么做了,然后是覆蓋 sheet。首先我們覆蓋 sheet 的時候還要保證其它 sheet 不受影響,所以 mode 仍然要設(shè)置為追加模式。

下面問題來了,我們上面的 Excel 文件有 "a"、"b"、"c" 三個 sheet,假設(shè)我們想將 "b" 這個 sheet 覆蓋掉,應(yīng)該怎么做呢?可能有人認(rèn)為,在追加的時候還指定 sheet_name="b" 不就行了,然鵝答案是不行的。

我們看到如果已有同名 sheet,那么不會覆蓋,還是創(chuàng)建一個新的 sheet,并自動在結(jié)尾處加一個 1。如果我們在此基礎(chǔ)上再寫入 "b" 這個 sheet 的話,那么又會多出一個名為 "b2" 的sheet。所以最好的辦法是,在導(dǎo)入之前先將 sheet 刪除。

import?pandas?as?pd

writer?=?pd.ExcelWriter("test.xlsx",?mode="a",?
????????????????????????engine="openpyxl")
wb?=?writer.book
#?pandas操作Excel底層也是依賴于其它的模塊,?比如xlrd、openpyxl
#?所以這里的?wb?=?writer.book??就相當(dāng)于
"""
from?openpyxl?import?load_workbook
wb?=?load_workbook("test.xlsx")
"""

#?查看已存在的所有的sheet,?總共是5個
#?其中?"b1"和"b2"?是自動創(chuàng)建的
print(wb.sheetnames)??#?['a',?'b',?'c',?'b1',?'b2']

#?下面我們來刪除sheet
wb.remove(wb["b1"])
wb.remove(wb["b2"])
wb.remove(wb["b"])

df?=?pd.DataFrame({"name":?["古明地覺",?"古明地戀"]})
#?我們將?b?這個?sheet?給刪除了
#?所以再導(dǎo)入?"b"?的時候就不會出現(xiàn)?"b3"?了
#?當(dāng)然?"b1"?和?"b2"?也順便被我們給刪掉了
df.to_excel(writer,?index=True,?sheet_name="b")

writer.save()
writer.close()

我們看到 "b1"、"b2" 兩個 sheet 就沒了,當(dāng)然我們刪除的還有 "b" 這個sheet,只不過又重新創(chuàng)建了,當(dāng)然數(shù)據(jù)也是我們創(chuàng)建的新數(shù)據(jù)。

另外可能有人發(fā)現(xiàn)多個 sheet 的順序不再是原來的 "a"、"b"、"c",這是因為在刪除 "b" 之后,"a" 和 "c" 就靠在一起了,所以新寫入 "b" 的時候就排在 "c" 的后面了,當(dāng)然個人覺得這沒有什么太大影響。

以上就是解決Pandas生成Excel時的sheet問題的方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Pandas生成Excel sheet問題的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Jupyter?Notebook界面漢化完整步驟

    Jupyter?Notebook界面漢化完整步驟

    這篇文章主要給大家介紹了關(guān)于Jupyter?Notebook界面漢化的相關(guān)資料,設(shè)置成中文界面后非常利于操作,文中介紹的方法非常簡單,需要的朋友可以參考下
    2023-09-09
  • Python替換月份為英文縮寫的實現(xiàn)方法

    Python替換月份為英文縮寫的實現(xiàn)方法

    今天小編就為大家分享一篇Python替換月份為英文縮寫的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python如何實現(xiàn)游戲中的推送通知與消息

    Python如何實現(xiàn)游戲中的推送通知與消息

    文章介紹了如何使用Python構(gòu)建高效的游戲消息推送系統(tǒng),包括使用異步IO和事件驅(qū)動編程,以及與Redis、WebSocket等技術(shù)的結(jié)合,文章還強調(diào)了安全性和用戶體驗的重要性,并提供了性能優(yōu)化的建議
    2025-01-01
  • python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割

    python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割

    這篇文章主要為大家詳細(xì)介紹了python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 微信跳一跳python代碼實現(xiàn)

    微信跳一跳python代碼實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了微信跳一跳python代碼實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 在Python中實現(xiàn)函數(shù)重載的示例代碼

    在Python中實現(xiàn)函數(shù)重載的示例代碼

    這篇文章主要介紹了在Python中實現(xiàn)函數(shù)重載的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python中正則表達(dá)式妙用之以搜索電子郵件地址為例

    Python中正則表達(dá)式妙用之以搜索電子郵件地址為例

    這篇文章主要給大家介紹了關(guān)于Python中正則表達(dá)式妙用之以搜索電子郵件地址為例的相關(guān)資料,正則表達(dá)式經(jīng)常被用到,而自己總是記不全,匯總一份完整的以備不時之需,需要的朋友可以參考下
    2024-05-05
  • Python爬蟲進(jìn)階Scrapy框架精文講解

    Python爬蟲進(jìn)階Scrapy框架精文講解

    這篇文章主要為大家介紹了Python爬蟲進(jìn)階中Scrapy框架精細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • python+selenium實現(xiàn)自動化百度搜索關(guān)鍵詞

    python+selenium實現(xiàn)自動化百度搜索關(guān)鍵詞

    在本篇文章里我們給大家分享了一篇關(guān)于python+selenium實現(xiàn)自動化百度搜索關(guān)鍵詞的實例文章,需要的朋友們可以跟著操作下。
    2019-06-06
  • python同步windows和linux文件

    python同步windows和linux文件

    這篇文章主要為大家詳細(xì)介紹了python同步windows和linux文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

岢岚县| 九寨沟县| 安平县| 蒙阴县| 梅河口市| 于田县| 邵阳市| 宾川县| 白城市| 徐闻县| 霍城县| 衡东县| 海阳市| 宜宾市| 黄浦区| 十堰市| 报价| 泾川县| 仪陇县| 易门县| 罗田县| 上栗县| 永嘉县| 泗洪县| 高雄县| 龙南县| 娱乐| 江永县| 郎溪县| 汕头市| 姚安县| 吉安市| 舞钢市| 色达县| 五河县| 布尔津县| 宣汉县| 林口县| 铅山县| 卓尼县| 大冶市|