亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決Pandas生成Excel時(shí)的sheet問(wèn)題的方法總結(jié)

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

楔子

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

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

那么下面就來(lái)看看如何解決這些問(wèn)題。

同時(shí)導(dǎo)入多個(gè) sheet

如果想導(dǎo)入多個(gè) sheet,那么肯定不能使用原來(lái) to_excel("文件名") 的方式,那樣只會(huì)保留最后一個(gè) sheet。我們應(yīng)該使用類(lèi) ExcelWriter 實(shí)現(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"表示追加,?但是它要求文件必須存在,?否則報(bào)錯(cuò)
"""
writer?=?pd.ExcelWriter("test.xlsx",?mode="a",?engine="openpyxl")
"""

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

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

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

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

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

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

覆蓋一個(gè) sheet

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

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

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

import?pandas?as?pd

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

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

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

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

writer.save()
writer.close()

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

另外可能有人發(fā)現(xiàn)多個(gè) sheet 的順序不再是原來(lái)的 "a"、"b"、"c",這是因?yàn)樵趧h除 "b" 之后,"a" 和 "c" 就靠在一起了,所以新寫(xiě)入 "b" 的時(shí)候就排在 "c" 的后面了,當(dāng)然個(gè)人覺(jué)得這沒(méi)有什么太大影響。

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

相關(guān)文章

  • Python爬蟲(chóng)框架-scrapy的使用

    Python爬蟲(chóng)框架-scrapy的使用

    Scrapy是純python實(shí)現(xiàn)的一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫(xiě)的應(yīng)用框架。這篇文章主要介紹了Python爬蟲(chóng)框架-scrapy的使用,需要的朋友可以參考下
    2021-04-04
  • 使用Pycharm為項(xiàng)目創(chuàng)建一個(gè)虛擬環(huán)境完整圖文教程

    使用Pycharm為項(xiàng)目創(chuàng)建一個(gè)虛擬環(huán)境完整圖文教程

    這篇文章主要給大家介紹了關(guān)于使用Pycharm為項(xiàng)目創(chuàng)建一個(gè)虛擬環(huán)境的相關(guān)資料,我們?cè)谑褂胮ycharm做項(xiàng)目時(shí),最好給每一個(gè)工程都創(chuàng)建一個(gè)虛擬環(huán)境,將對(duì)應(yīng)的安裝包放在該虛擬環(huán)境中,避免項(xiàng)目與項(xiàng)目之間產(chǎn)生關(guān)系或沖突,便于管理,需要的朋友可以參考下
    2023-09-09
  • Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)Dropout應(yīng)用詳解解

    Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)Dropout應(yīng)用詳解解

    這篇文章主要為大家介紹了Python深度學(xué)習(xí)中關(guān)于pytorch神經(jīng)網(wǎng)絡(luò)Dropout的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Python字符串匹配算法KMP實(shí)例

    Python字符串匹配算法KMP實(shí)例

    這篇文章主要介紹了Python字符串匹配算法KMP實(shí)現(xiàn)方法,實(shí)例分析了Python針對(duì)字符串操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python統(tǒng)計(jì)分析模塊statistics用法示例

    Python統(tǒng)計(jì)分析模塊statistics用法示例

    這篇文章主要介紹了Python統(tǒng)計(jì)分析模塊statistics用法,結(jié)合實(shí)例形式分析了Python統(tǒng)計(jì)分析模塊statistics計(jì)算平均數(shù)、中位數(shù)、出現(xiàn)次數(shù)、標(biāo)準(zhǔn)差等相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • python入門(mén)語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句

    python入門(mén)語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句

    本文介紹了python入門(mén)語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句,if?語(yǔ)句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對(duì)集合中的每個(gè)元素都一個(gè)代碼塊,而?while?循環(huán)不斷地運(yùn)行,直到指定的條件不滿(mǎn)足為止,本文通過(guò)示例代碼詳解介紹,需要的朋友參考下吧
    2022-04-04
  • python中zip函數(shù)用法詳解(全)

    python中zip函數(shù)用法詳解(全)

    這篇文章主要給大家介紹了關(guān)于python中zip函數(shù)用法詳解的相關(guān)資料,zip()是Python的一個(gè)內(nèi)建函數(shù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Django項(xiàng)目創(chuàng)建到啟動(dòng)詳解(最全最詳細(xì))

    Django項(xiàng)目創(chuàng)建到啟動(dòng)詳解(最全最詳細(xì))

    這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目創(chuàng)建到啟動(dòng)的步驟,本文介紹的方法算是最全最詳細(xì)的一個(gè)項(xiàng)目,需要的朋友可以參考下
    2019-09-09
  • Python超簡(jiǎn)單容易上手的畫(huà)圖工具庫(kù)(適合新手)

    Python超簡(jiǎn)單容易上手的畫(huà)圖工具庫(kù)(適合新手)

    這篇文章主要給大家介紹了關(guān)于Python超簡(jiǎn)單容易上手的畫(huà)圖工具庫(kù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python3.6實(shí)現(xiàn)根據(jù)電影名稱(chēng)(支持電視劇名稱(chēng)),獲取下載鏈接的方法

    Python3.6實(shí)現(xiàn)根據(jù)電影名稱(chēng)(支持電視劇名稱(chēng)),獲取下載鏈接的方法

    這篇文章主要介紹了Python3.6實(shí)現(xiàn)根據(jù)電影名稱(chēng)(支持電視劇名稱(chēng)),獲取下載鏈接的方法,涉及Python爬蟲(chóng)與正則相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08

最新評(píng)論