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

Pandas實(shí)現(xiàn)自定義Excel格式并導(dǎo)出多個(gè)sheet表

 更新時(shí)間:2023年05月08日 14:17:47   作者:黃昏中起飛的貓頭鷹  
pandas默認(rèn)整合XlsxWriter驅(qū)動(dòng),可以自動(dòng)化處理excel操作,并提供公式、設(shè)置單元格格式、可視化分析圖片等操作,本文就來和大家詳細(xì)聊聊

前言

pandas 默認(rèn)整合XlsxWriter驅(qū)動(dòng),自動(dòng)化處理excel操作,提供公式、設(shè)置單元格格式、可視化分析圖片等操作

XlsxWriter官方使用說明:

XlsxWriter Documentation

1.導(dǎo)入pandas及數(shù)據(jù)

import pandas as pd
df =  pd.read_excel(r"C:\Users\xxx\xxx\XLSX 工作表.xlsx")

2.修改pd.to_excle方法

定義類writer:

class writer():
    def __init__(self,df,sheet_name,key,path):  #設(shè)置對(duì)象參數(shù)
        self.df = df                 #dataframe數(shù)據(jù)(列表)
        self.sheet_name = sheet_name #sheet名稱(列表)
        self.key = key               #需要上色字段(列表)
        self.path = path             #excel保存地址

3.構(gòu)建保存方法save

    def save(self):
        #設(shè)置保存地址,默認(rèn)桌面
        path = "C:/Users/xxx/Desktop/{}{}(導(dǎo)出時(shí)間{}).xlsx".format(pd.datetime.now().strftime("%y%m%d"),self.path,pd.datetime.now().strftime("%H時(shí)%M分%S秒"))

4.創(chuàng)建pd.ExcelWriter實(shí)例

writer = pd.ExcelWriter(path,engine='xlsxwriter') #創(chuàng)建pandas.ExcelWriter實(shí)例,賦值給writer

5.創(chuàng)建多個(gè)sheet表

        for j in range(len(self.sheet_name)):  #遍歷sheet名稱列表
            #創(chuàng)建sheet表并寫入dataframe數(shù)據(jù)
            self.df[j].to_excel(writer, sheet_name=self.sheet_name[j], index=False #不寫入索引index=False
                                ,freeze_panes=(1,2)) #設(shè)置固定1、2列(固定列無法左右移動(dòng))
            workbook = writer.book        #工作蒲方法
            worksheet = writer.sheets[self.sheet_name[j]] #讀取sheet表

6.設(shè)置自定義列寬

            #  計(jì)算每列的合適字符寬度,放到元組中(可以設(shè)置最大值)
            widths = (self.df[j].astype(str).applymap(lambda x: 40 if len(x)>61 else len(x)+6 if len(x)<8 else len(x)).agg(max).values)
            #設(shè)置每列寬度大小
            [worksheet.set_column(i, i, width) for i, width in enumerate(widths)] #計(jì)算的寬度,設(shè)置列寬

7.設(shè)置列不同顏色

設(shè)置顏色列表,給不同列設(shè)計(jì)喜歡的顏色

          color = ['#03A89E','#00C78C','#FFFFCD','#FFC0CB','#808A87','#FFE384','#ED9121','#40E0D0','#FFFFCD']*5 #顏色列表
            [worksheet.set_column(i,i,widths[i],workbook.add_format({'fg_color': color[i-11],
                                                        'valign': 'vcenter',# 垂直對(duì)齊方式
                                                        'font_size': 10, #字體大小
                                                        'border': 4, #單元格邊框?qū)挾?br />                                                        'align': 'left' # 水平對(duì)齊方式
                                                                    })) for 
            i,x in enumerate(self.df[j].columns) if self.df[j].columns[i] in self.key[0]]

8.設(shè)置首行格式

            #設(shè)置首行寬度 
            worksheet.set_row(0,20,workbook.add_format({'fg_color':'#40E0D0'#背景顏色
                                                        ,'bold': True,#字體加粗
                                                        'valign': 'vcenter',# 垂直對(duì)齊方式
                                                        'font_size': 16, #字體大小
                                                        'border': 10, #單元格邊框?qū)挾?
                                                        'align': 'left' # 水平對(duì)齊方式
                                                       }))
        writer.save()
        writer.close()

9.可以設(shè)置隱藏不顯示列 

worksheet.set_column("A:B",None,None,{'hidden':1})  #A至B列,隱藏

調(diào)用方法:

writer1 = writer(df=[數(shù)據(jù)列表],path='文件名稱(保存到桌面)',key=[上色字段列表],sheet_name=['sheet表名列表'])
writer1.save()

10.完整代碼

class writer():
    def __init__(self,df,sheet_name,key,path):
        self.df = df                 #dataframe數(shù)據(jù)(列表)
        self.sheet_name = sheet_name #sheet名稱(列表)
        self.key = key               #需要上色字段(列表)
        self.path = path             #excel保存地址
    def save(self):
        #設(shè)置保存地址,默認(rèn)桌面
        path = "C:/Users/xxx/Desktop/{}{}(導(dǎo)出時(shí)間{}).xlsx".format(pd.datetime.now().strftime("%y%m%d"),self.path,pd.datetime.now().strftime("%H時(shí)%M分%S秒"))
        #創(chuàng)建pandas.ExcelWriter實(shí)例
        writer = pd.ExcelWriter(path,engine='xlsxwriter') #創(chuàng)建pandas.ExcelWriter實(shí)例,賦值給writer
        for j in range(len(self.sheet_name)):  #遍歷sheet名稱列表
            #創(chuàng)建sheet表并寫入dataframe數(shù)據(jù)
            self.df[j].to_excel(writer, sheet_name=self.sheet_name[j], index=False #不寫入索引index=False
                                ,freeze_panes=(1,2)) #設(shè)置固定1、2列(固定列無法左右移動(dòng))
            workbook = writer.book        #工作蒲格式方法
            worksheet = writer.sheets[self.sheet_name[j]] #讀取sheet表
            #  計(jì)算每列的合適字符寬度,放到元組中
            widths = (self.df[j].astype(str).applymap(lambda x: 40 if len(x)>61 else len(x)+6 if len(x)<8 else len(x)).agg(max).values)
            #設(shè)置每列寬度大小
            [worksheet.set_column(i, i, width) for i, width in enumerate(widths)] #計(jì)算的寬度,設(shè)置列寬
            color = ['#03A89E','#00C78C','#FFFFCD','#FFC0CB','#808A87','#FFE384','#ED9121','#40E0D0','#FFFFCD']*5 #顏色列表
            [worksheet.set_column(i,i,widths[i],workbook.add_format({'fg_color': color[i-11],
                                                        'valign': 'vcenter',# 垂直對(duì)齊方式
                                                        'font_size': 10, #字體大小
                                                        'border': 4, #單元格邊框?qū)挾?
                                                        'align': 'left' # 水平對(duì)齊方式
                                                                    })) for 
            i,x in enumerate(self.df[j].columns) if self.df[j].columns[i] in self.key[0]]
            #設(shè)置首行寬度 
            worksheet.set_row(0,20,workbook.add_format({'fg_color':'#40E0D0'#背景顏色
                                                        ,'bold': True,#字體加粗
                                                        'valign': 'vcenter',# 垂直對(duì)齊方式
                                                        'font_size': 16, #字體大小
                                                        'border': 10, #單元格邊框?qū)挾?
                                                        'align': 'left' # 水平對(duì)齊方式
                                                       }))
#         worksheet.set_column("A:B",None,None,{'hidden':1})  #A至B列,隱藏
        writer.save()
        writer.close()
writer1 = writer(df=[df],path='フィロソフィー',key=[df],sheet_name=['sheet表名'])
writer1.save()

 輸出格式(如圖):

文件名:230121フィロソフィー(導(dǎo)出時(shí)間21時(shí)53分49秒).xlsx

輸出多個(gè)sheet表時(shí),改為:

writer1 = writer(df=[df1,df2],path='文件名稱(路徑修改path)',
key=[df.columns,df2.columns],
sheet_name=['sheet表名1','sheet表名2'])
writer1.save()

總結(jié)

坑:pandas.ExcelWriter默認(rèn)首行顏色格式無法修改,需要?jiǎng)h除首行后重新寫入首行

補(bǔ)充:除了xlsxwriter驅(qū)動(dòng)外,還可以設(shè)置pandas.ExcelWriter的其他驅(qū)動(dòng),如:openxlsx驅(qū)動(dòng),區(qū)別:openxlsx支持對(duì)已有文件進(jìn)行讀寫,Xlsxwriter只支持重新寫入,Xlsxwriter速度更快和excel操作更豐富

到此這篇關(guān)于Pandas實(shí)現(xiàn)自定義Excel格式并導(dǎo)出多個(gè)sheet表的文章就介紹到這了,更多相關(guān)Pandas自定義Excel格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django用戶登錄和注銷的實(shí)現(xiàn)方法

    django用戶登錄和注銷的實(shí)現(xiàn)方法

    這篇文章主要介紹了django用戶登錄和注銷的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 解決python

    解決python "No module named pip"的問題

    今天小編就為大家分享一篇解決python "No module named pip"的問題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python讀取HDFS目錄下的所有文件的實(shí)現(xiàn)示例

    Python讀取HDFS目錄下的所有文件的實(shí)現(xiàn)示例

    HDFS是Apache Hadoop的分布式文件系統(tǒng),本文主要介紹了Python讀取HDFS目錄下的所有文件的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python調(diào)用Java可執(zhí)行jar包問題

    Python調(diào)用Java可執(zhí)行jar包問題

    這篇文章主要介紹了Python調(diào)用Java可執(zhí)行jar包問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python set集合使用方法解析

    python set集合使用方法解析

    這篇文章主要介紹了python set集合使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 使用Python的PIL庫(kù)給圖像進(jìn)行過濾

    使用Python的PIL庫(kù)給圖像進(jìn)行過濾

    PIL是一個(gè)用于圖像處理的Python庫(kù),它提供了各種功能,包括加載、保存、編輯和處理圖像,你可以使用PIL庫(kù)進(jìn)行圖像縮放、裁剪、旋轉(zhuǎn)、濾鏡應(yīng)用等操作,本文將介紹如何使用Python的PIL庫(kù)給圖像進(jìn)行過濾,需要的朋友可以參考下
    2023-08-08
  • pandas刪除行刪除列增加行增加列的實(shí)現(xiàn)

    pandas刪除行刪除列增加行增加列的實(shí)現(xiàn)

    這篇文章主要介紹了pandas刪除行刪除列增加行增加列的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Pytorch在dataloader類中設(shè)置shuffle的隨機(jī)數(shù)種子方式

    Pytorch在dataloader類中設(shè)置shuffle的隨機(jī)數(shù)種子方式

    今天小編就為大家分享一篇Pytorch在dataloader類中設(shè)置shuffle的隨機(jī)數(shù)種子方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python批處理刪除和重命名文件夾的實(shí)例

    Python批處理刪除和重命名文件夾的實(shí)例

    今天小編就為大家分享一篇Python批處理刪除和重命名文件夾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python使用?OpenCV?進(jìn)行圖像投影變換

    Python使用?OpenCV?進(jìn)行圖像投影變換

    這篇文章主要介紹了Python使用?OpenCV?進(jìn)行圖像投影變換,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評(píng)論

湖南省| 双桥区| 仁布县| 长岭县| 涪陵区| 灵山县| 乳山市| 武鸣县| 大同市| 湘乡市| 嘉荫县| 昭觉县| 和田县| 景东| 宣化县| 依兰县| 瑞安市| 库伦旗| 庄河市| 全南县| 通河县| 中江县| 泗水县| 友谊县| 怀柔区| 邮箱| 固原市| 犍为县| 福安市| 呼和浩特市| 梓潼县| 黄大仙区| 五家渠市| 西青区| 长岭县| 阳新县| 饶阳县| 若尔盖县| 无锡市| 沙雅县| 鲜城|