摘要:当在 Excel 中处理大型数据集时,导航和理解信息可能会让人不知所措。对行和列进行分组是一种简单而有效的方法,可以使数据井井有条且易于使用。它允许您折叠不需要一直查看的数据部分,保持电子表格整洁并专注于最重要的内容。
当在 Excel 中处理大型数据集时,导航和理解信息可能会让人不知所措。对行和列进行分组是一种简单而有效的方法,可以使数据井井有条且易于使用。它允许您折叠不需要一直查看的数据部分,保持电子表格整洁并专注于最重要的内容。
为了在 Python 中应用和删除 Excel 中的行或列分组,本文使用 Python Excel 库:Spire.XLS for Python。
Spire.XLS for Python 是一个多功能且易于使用的库,用于在 Python 应用程序中创建、读取、编辑和转换 Excel 文件。使用此库,您可以轻松处理许多电子表格格式,例如 XLS、XLSX、XLSB、XLSM 和 ODS。此外,您还可以将 Excel 文件渲染为其他类型的文件格式,例如 PDF、HTML、CSV、文本、图像、XML、SVG、ODS、PostScript 和 XPS。
您可以通过在终端中运行以下命令从 pypi 轻松安装 Spire.XLS for Python:
pip install Spire.Xls有关安装的更多详细信息,您可以查看此官方文档:如何在 VS Code 中安装 Spire.XLS for Python。
您可以使用 Worksheet 界面的 GroupByRows 或 GroupByColumns 方法来应用行或列分组。
要分组的第一个行/列索引。要分组的最后一行/列索引。布尔值指示是否应折叠分组的行/列。以下代码显示了如何在 Python 的 Excel 工作表中应用行和列分组:
from spire.xls import *from spire.xls.common import *# Open an Excel Fileworkbook = Workbookworkbook.LoadFromFile("Sales Data.xlsx")# Get the first worksheetsheet = workbook.Worksheets[0]# Group rows 2-6sheet.GroupByRows(2, 6, False)# Group columns 2-3sheet.GroupByColumns(2, 3, False)# Save the resultant fileworkbook.SaveToFile("ApplyGrouping.xlsx", ExcelVersion.Version2016)workbook.Dispose有时,您可能希望通过创建多级分组数据来组织和汇总复杂的数据集。
以下代码演示如何使用 Python 在 Excel 中创建嵌套组:
from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("Sales Data.xlsx")# Get the first worksheetsheet = workbook.Worksheets[0]# Group rows 2-9sheet.GroupByRows(2, 11, False)# Group rows 3-5 in the grouped rowssheet.GroupByRows(2, 6, False)# Save the resultant fileworkbook.SaveToFile("NestedGrouping.xlsx", ExcelVersion.Version2016)workbook.Dispose在 Python 的 Excel 中创建嵌套分组
工作表中行或列的默认轮廓级别为 0,这意味着它未分组。每次对行或列进行分组时,大纲级别都会增加 1。您可以使用 Worksheet.Range 获取大纲级别。RowGroupLevel 和 Worksheet.Range。ColumnGroupLevel 属性。
以下代码演示如何使用 Python 获取工作表中行和列的轮廓级别:
from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("ApplyGrouping.xlsx")# Get the first worksheetsheet = workbook.Worksheets[0]# Retrieve the outline levels for specific row and columnrow_outline_level = sheet.Range["A2"].RowGroupLevelcol_outline_level = sheet.Range["C1"].ColumnGroupLevel# Print the outline levelsprint(f"Row Outline Level at A2: {row_outline_level}")print(f"Column Outline Level at C1: {col_outline_level}")workbook.Dispose可以使用 Worksheet.Range 展开或折叠分组的行或列。ExpandGroup 或 Worksheet.Range。CollapseGroup 方法。
以下代码演示如何在 Python 中展开或折叠 Excel 中的分组行和列:
from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("ApplyGrouping.xlsx")# Get the first worksheetsheet = workbook.Worksheets[0]# Collapse the grouped rows in a specific rangesheet.Range["A2:C6"].CollapseGroup(GroupByType.ByRows)# Expand the grouped rows in a specific range# sheet.Range["A2:C6"].ExpandGroup(GroupByType.ByRows)# Collapse the grouped columns in a specific rangesheet.Range["B1:C11"].CollapseGroup(GroupByType.ByColumns)# Expand the grouped columns in a specific range# sheet.Range["B2:C11"].ExpandGroup(GroupByType.ByColumns)# Save the resultant fileworkbook.SaveToFile("CollapseGrouping.xlsx", ExcelVersion.Version2016)在 Python 中展开或折叠 Excel 中的组
Excel 中的 SUBTOTAL 函数允许用户创建组,然后执行各种其他 Excel 函数,例如 SUM、COUNT、AVERAGE、PRODUCT 和 MAX。
您可以使用 Worksheet 界面的 Subtotal 方法添加小计来计算数据。该方法采用以下参数:
包含要小计的数据的单元格区域。您希望作为数据分组依据的列索引。应计算小计的列索引列表。要用于计算数据的小计函数。布尔值指示是否替换现有小计。布尔值指示是否在小计之间插入分页符。布尔值指示是否在每组数据下方显示汇总结果。以下代码显示了如何在 Python 的 Excel 中为给定范围创建小计:
from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("Sales Data.xlsx")# Get the first worksheetsheet = workbook.Worksheets[0]# Create subtotals for a specific range of datacell_range = sheet.Range["A2:C11"]sheet.Subtotal(cell_range, 0, [2], SubtotalTypes.Sum, True, False, True)# Save the resultant fileworkbook.SaveToFile("AddSubtotals.xlsx", ExcelVersion.Version2016)workbook.Dispose在 Python 的 Excel 中创建小计
虽然分组允许您更清楚地关注数据的特定部分,但您可能希望删除分组以重新获得整个数据集的全面视图。
可以使用 Worksheet 界面的 UngroupByRows 或 UngroupByColumns 方法取消分组的行或列。
以下代码显示了如何在 Python 中取消 Excel 中的行和列分组:
from spire.xls import *from spire.xls.common import *# Open an Excel fileworkbook = Workbookworkbook.LoadFromFile("ApplyGrouping.xlsx")# Get the first worksheetsheet = workbook.Worksheets[0]# Ungroup rows 2-6sheet.UngroupByRows(2, 6)# Ungroup columns 2-3sheet.UngroupByColumns(2, 3)# Save the resultant fileworkbook.SaveToFile("RemoveGrouping.xlsx", ExcelVersion.Version2016)workbook.Dispose当数据堆积时,使用 Excel 可能会很乏味,但使用 Python 对行和列进行分组有助于消除噪音。通过对特定部分进行分组,您可以快速展开、折叠并专注于重要内容,而无需不断滚动浏览无休止的行。Spire.XLS 使在 Python 中实现这一点变得容易,允许您创建嵌套组、管理大纲级别,甚至添加有用的小计。
来源:自由坦荡的湖泊AI