使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組
引言
Excel中的分組是一種通過添加層級結(jié)構(gòu)將相鄰行或列組織在一起的功能。當(dāng)分組完成后,用戶可以通過折疊或展開數(shù)據(jù)組來簡化數(shù)據(jù)視圖。這種功能特別適用于包含多層次結(jié)構(gòu)的數(shù)據(jù),或者需要隱藏部分數(shù)據(jù)以便專注于特定內(nèi)容的場景。這篇博客將介紹如何使用Python在Excel中創(chuàng)建或取消數(shù)據(jù)分組,主要涵蓋以下內(nèi)容:
- Python在Excel中創(chuàng)建行和列分組
- Python在Excel中創(chuàng)建嵌套分組
- Python獲取Excel中的行和列的大綱級別
- Python展開或折疊Excel中的分組
- Python在Excel中創(chuàng)建分類匯總
- Python取消Excel中的行和列分組
使用工具
在Python中,可以使用Spire.XLS for Python庫來實現(xiàn)在Excel中創(chuàng)建和取消數(shù)據(jù)分組。
Spire.XLS for Python主要用于在Python應(yīng)用程序中創(chuàng)建、讀取、編輯和轉(zhuǎn)換Excel文件。它可以處理多種電子表格格式,包括XLS、XLSX、XLSB、XLSM和ODS等。此外,還可以將Excel文件轉(zhuǎn)換為其他文件格式,如PDF、HTML、CSV、文本、圖像、XML、SVG、ODS、PostScript和XPS。
你可通過在終端運行以下命令來安裝Spire.XLS for Python:
pip install Spire.Xls
Python在Excel中創(chuàng)建行和列分組
Spire.XLS for Python提供了Worksheet.GroupByRows()和Worksheet.GroupByColumns()方法,分別用于對Excel工作表中的行和列的數(shù)據(jù)進行分組。
這些方法的參數(shù)如下:
- 分組的起始行或起始列的索引。
- 分組的結(jié)束行或結(jié)束列索引。
- 是否折疊分組,True表示折疊,F(xiàn)alse表示展開。
下面是使用Python對Excel工作表中的行和列進行分組的實現(xiàn)代碼:
from spire.xls import * # 打開一個Excel文件 workbook = Workbook() workbook.LoadFromFile("數(shù)據(jù).xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 分組第2-6行 sheet.GroupByRows(2, 6, False) # 分組第2-3列 sheet.GroupByColumns(2, 3, False) # 保存結(jié)果文件 workbook.SaveToFile("創(chuàng)建分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python在Excel中創(chuàng)建嵌套分組
嵌套分組是指將一個分組嵌套在另一個分組之內(nèi),從而形成多層次的數(shù)據(jù)結(jié)構(gòu)。例如,在銷售數(shù)據(jù)中,可以按“地區(qū)”分組,然后在每個地區(qū)內(nèi)再按“銷售人員”進行分組。這樣,數(shù)據(jù)的組織結(jié)構(gòu)更加清晰,并且便于分析。
要在Excel工作表中創(chuàng)建嵌套行或列分組,可以通過多次使用Worksheet.GroupByRows()或Worksheet.GroupByColumns()方法來實現(xiàn)。
下面是使用Python在Excel工作表中創(chuàng)建嵌套行分組的實現(xiàn)代碼:
from spire.xls import * # 打開一個Excel文件 workbook = Workbook() workbook.LoadFromFile("數(shù)據(jù).xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 分組第2-11行 sheet.GroupByRows(2, 11, False) # 在以上分組中創(chuàng)建嵌套分組 sheet.GroupByRows(2, 6, False) # 保存結(jié)果文件 workbook.SaveToFile("創(chuàng)建嵌套分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python獲取Excel中的行和列的大綱級別
工作表中行或列的默認大綱級別為0,表示該行列當(dāng)前未分組。每次分組時,大綱級別會相應(yīng)地增加1。通過使用Worksheet.Range[].RowGroupLevel和Worksheet.Range[].ColumnGroupLevel屬性,可以獲取特定行或列的大綱級別。
下面是獲取Excel工作表中特定行和列的大綱級別的實現(xiàn)代碼:
from spire.xls import * # 打開一個Excel文件 workbook = Workbook() workbook.LoadFromFile("創(chuàng)建分組.xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 獲取特定行和列的大綱級別 row_outline_level = sheet.Range["A2"].RowGroupLevel col_outline_level = sheet.Range["C1"].ColumnGroupLevel # 打印大綱級別 print(f"單元格A2的行大綱級別:{row_outline_level}") print(f"單元格C1的列大綱級別:{col_outline_level}") workbook.Dispose()
Python展開或折疊Excel中的分組
要展開或折疊Excel工作表中的分組數(shù)據(jù),可以使用Worksheet.Range[].ExpandGroup或Worksheet.Range[].CollapseGroup方法,前者用于展開分組,后者用于折疊分組。
下面是使用Python在Excel中展開或折疊分組數(shù)據(jù)的實現(xiàn)代碼:
from spire.xls import * # 打開一個Excel文件 workbook = Workbook() workbook.LoadFromFile("創(chuàng)建分組.xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 折疊指定單元格區(qū)域內(nèi)的分組行 sheet.Range["A2:C6"].CollapseGroup(GroupByType.ByRows) # 或者展開指定單元格區(qū)域內(nèi)的分組行 # sheet.Range["A2:C6"].ExpandGroup(GroupByType.ByRows) # 折疊指定單元格區(qū)域內(nèi)的分組列 sheet.Range["B1:C11"].CollapseGroup(GroupByType.ByColumns) # 或者展開指定單元格區(qū)域內(nèi)的分組列 # sheet.Range["B2:C11"].ExpandGroup(GroupByType.ByColumns) # 保存結(jié)果文件 workbook.SaveToFile("折疊分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python在Excel中創(chuàng)建分類匯總
Excel中的SUBTOTAL函數(shù)允許用戶對數(shù)據(jù)進行分組并自動執(zhí)行特定的分類匯總操作,如求和、計數(shù)、平均值、乘積和最大值。
在Spire.XLS中,可以使用Worksheet.Subtotal()方法為數(shù)據(jù)添加分類匯總。該方法的參數(shù)如下:
- 數(shù)據(jù)區(qū)域:指定需要進行分類匯總的單元格區(qū)域。
- 分組依據(jù):按哪一列的索引對數(shù)據(jù)進行分組。
- 匯總列:需要進行匯總計算的列索引列表。
- 匯總類型:選擇用于計算分類匯總的函數(shù)類型,例如求和 (Sum)、計數(shù) (Count) 等。
- 替換現(xiàn)有匯總:是否替換當(dāng)前分類匯總,True 表示替換,F(xiàn)alse 表示保留。
- 插入分頁符:是否每組數(shù)據(jù)分頁,True 表示分頁,F(xiàn)alse 表示不分頁。
- 顯示位置:是否將匯總顯示在數(shù)據(jù)下方,True 表示顯示在下方,F(xiàn)alse 表示顯示在上方。
下面是使用Python為Excel工作表中指定數(shù)據(jù)區(qū)域添加分類匯總的實現(xiàn)代碼:
from spire.xls import * # 打開一個Excel文件 workbook = Workbook() workbook.LoadFromFile("數(shù)據(jù).xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 為指定的數(shù)據(jù)區(qū)域創(chuàng)建分類匯總 cell_range = sheet.Range["A2:C11"] sheet.Subtotal(cell_range, 0, [2], SubtotalTypes.Sum, True, False, True) # 保存結(jié)果文件 workbook.SaveToFile("添加分類匯總.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python取消Excel中的行和列分組
雖然分組功能有利于查看特定數(shù)據(jù),但有時候需要取消分組以便查看整個數(shù)據(jù)集。
要取消Excel工作表中的分組,可以使用Worksheet.UngroupByRows()或Worksheet.UngroupByColumns()方法,前者用于取消行分組,后者用于取消列分組。
下面是使用Python取消Excel工作表中的行和列分組的實現(xiàn)代碼:
from spire.xls import * # 打開一個Excel文件 workbook = Workbook() workbook.LoadFromFile("創(chuàng)建分組.xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 取消分組第2-6行 sheet.UngroupByRows(2, 6) # 取消分組第2-3列 sheet.UngroupByColumns(2, 3) # 保存結(jié)果文件 workbook.SaveToFile("取消分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
以上就是使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組的全部內(nèi)容。
以上就是使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組的詳細內(nèi)容,更多關(guān)于Python Excel創(chuàng)建和取消數(shù)據(jù)分組的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PyTorch的深度學(xué)習(xí)入門教程之構(gòu)建神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了PyTorch的深度學(xué)習(xí)入門教程之構(gòu)建神經(jīng)網(wǎng)絡(luò),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06一份python入門應(yīng)該看的學(xué)習(xí)資料
關(guān)于python入門你應(yīng)該看這些資料,幫助你快速入門python,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04Python使用Kafka處理數(shù)據(jù)的方法詳解
Kafka是一個分布式的流數(shù)據(jù)平臺,它可以快速地處理大量的實時數(shù)據(jù)。在Python中使用Kafka可以幫助我們更好地處理大量的數(shù)據(jù),本文就來和大家詳細講講具體使用方法吧2023-04-04Python configparser模塊封裝及構(gòu)造配置文件
這篇文章主要介紹了Python configparser模塊封裝及構(gòu)造配置文件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08Python 讀取xml數(shù)據(jù),cv2裁剪圖片實例
這篇文章主要介紹了Python 讀取xml數(shù)據(jù),cv2裁剪圖片實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03