淺析Python如何在Excel中應(yīng)用數(shù)據(jù)透視表
數(shù)據(jù)透視表是 Excel 最強(qiáng)大的數(shù)據(jù)分析工具之一,能快速實(shí)現(xiàn)海量數(shù)據(jù)的動(dòng)態(tài)匯總、多維分析與交互式展示。用戶(hù)能在不同角度上查看和比較數(shù)據(jù),深入研究數(shù)據(jù)之間的關(guān)系和模式。 但是 Excel 同其他 Office 軟件一樣,想要高效辦公就得付出大量時(shí)間和精力去學(xué)習(xí)高階使用,而人工處理也在面對(duì)大量數(shù)據(jù)時(shí)顯得力不從心。
幸運(yùn)的是,利用好 Python 等編程語(yǔ)言,我們就可以使用幾行淺顯易懂的代碼實(shí)現(xiàn)全自動(dòng)處理數(shù)據(jù),并生成所需 Excel 文件。而 Python 的 Spire.XLS 庫(kù)就是這樣一個(gè)絕佳的工具。 本文將介紹如何使用 Python 在 Excel 中應(yīng)用數(shù)據(jù)透視表。
前期準(zhǔn)備
為了實(shí)現(xiàn)純代碼操控 Excel 文檔,本文中需要用到 Spire.XLS for Python 庫(kù),我們可以用以下兩種方法安裝。
- 手動(dòng)下載產(chǎn)品包后再?gòu)谋镜芈窂桨惭b。
- 通過(guò)命令行直接使用以下 pip 命令安裝:
pip install Spire.XLS
Python 在 Excel 中創(chuàng)建透視表
從最簡(jiǎn)單的部分開(kāi)始——要在 Excel 中創(chuàng)建透視表,請(qǐng)按照以下步驟操作:
- 使用 Workbook.LoadFromFile() 方法加載一個(gè)現(xiàn)有的 Excel 文檔
- 通過(guò) Workbook.Worksheets[index] 屬性獲取指定的工作表
- 使用 Worksheet.Range 屬性指定透視表的單元格數(shù)據(jù)范圍
- 使用 Workbook.PivotCaches.Add() 方法創(chuàng)建 PivotCache 對(duì)象
- 使用 Worksheet.PivotTables.Add() 方法根據(jù) PivotCache 創(chuàng)建透視表
- 添加行字段
- 添加值字段
- 使用 PivotTable.PivotBuiltInStyles 設(shè)置內(nèi)置樣式到透視表
- 使用 Workbook.SaveToFile() 方法保存結(jié)果文檔
- 使用 Workbook.Dispose() 方法釋放文檔對(duì)象[i]
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載原 Excel 文檔
workbook.LoadFromFile("Microsoft Excel 工作表.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 指定透視表的數(shù)據(jù)范圍
cellRange = sheet.Range["A2:D28"]
# 添加 CellRange 到 PivotCaches
piVotCache = workbook.PivotCaches.Add(cellRange)
# 通過(guò)PivotCaches添加透視表并設(shè)置位置
pivotTable = sheet.PivotTables.Add("Pivot Table", sheet.Range["H4"],
piVotCache)
# 設(shè)置透視表的行字段
regionField = pivotTable.PivotFields["書(shū)店名稱(chēng)"]
regionField.Axis = AxisTypes.Row
pivotTable.Options.RowHeaderCaption = "書(shū)店名稱(chēng)"
productField = pivotTable.PivotFields["書(shū)籍名稱(chēng)"]
productField.Axis = AxisTypes.Row
# 添加值字段
pivotTable.DataFields.Add(pivotTable.PivotFields["銷(xiāo)售數(shù)量(本)"], "總計(jì)銷(xiāo)售數(shù)量(本)",
SubtotalTypes.Sum)
# 設(shè)置透視表的樣式
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleMedium11
# 設(shè)置透視表相應(yīng)列的列寬
h = sheet.Range["H4"]
sheet.SetColumnWidth(h.Column, 18)
sheet.SetColumnWidth(h.Column + 1, 20)
# 保存文件
workbook.SaveToFile("結(jié)果.xlsx", ExcelVersion.Version2016)
# 釋放對(duì)象
workbook.Dispose()結(jié)果預(yù)覽:

(Python 在 Excel 中創(chuàng)建數(shù)據(jù)透視表)
Python 按列值對(duì)透視表進(jìn)行排序
使用 Spire.XLS,讓我們?cè)?Python 中得以通過(guò)列值對(duì)透視表進(jìn)行排序。首先,通過(guò) PivotTable.PivotFields["FieldName"] 屬性訪問(wèn)特定字段,然后使用 PivotField.SortType 屬性設(shè)置其排序類(lèi)型。
以下是按照特定字段的值對(duì)透視表進(jìn)行排序的步驟:
- 使用 Workbook.LoadFromFile() 方法加載含有透視表的原 Excel 文檔
- 通過(guò) Workbook.Worksheets[index] 屬性獲取特定的工作表
- 通過(guò) Worksheet.PivotTables[index] 屬性從工作表中獲取特定的透視表
- 通過(guò) PivotTable.PivotFields["FieldName"] 屬性獲取特定的字段
- 通過(guò) PivotField.SortType 屬性對(duì)該字段中的數(shù)據(jù)進(jìn)行排序
- 使用 Workbook.SaveToFile() 方法保存結(jié)果文件
- 使用 Workbook.Dispose() 方法釋放文檔對(duì)象
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載含有透視表的原 Excel 文檔
workbook.LoadFromFile("透視表.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 獲取第一個(gè)透視表
pivotTable = sheet.PivotTables[0]
# 獲取要排序的字段
idField = pivotTable.PivotFields["書(shū)店名稱(chēng)"]
# 按升序排列
idField.SortType = PivotFieldSortType.Ascending
# 保存文件
workbook.SaveToFile("結(jié)果.xlsx", ExcelVersion.Version2016)
# 釋放對(duì)象
workbook.Dispose()結(jié)果預(yù)覽:

(Python 按列值對(duì)數(shù)據(jù)透視表排序)
Python 展開(kāi)或折疊透視表中的行
若是想在 Python 中展開(kāi)或折疊數(shù)據(jù)透視表中的行,可以使用 PivotField.HideItemDetail(string itemValue, bool isHiddenDetail) 方法來(lái)實(shí)現(xiàn)。
將第二個(gè)參數(shù)設(shè)置為 true 為折疊效果;反之,設(shè)置為 false 為展開(kāi)效果。
詳細(xì)步驟如下:
- 使用 Workbook.LoadFromFile() 方法加載含有透視表的原 Excel 文檔
- 通過(guò) Workbook.Worksheets[index] 屬性獲取特定的工作表
- 通過(guò) Worksheet.PivotTables[index] 屬性從工作表中獲取特定的透視表
- 通過(guò) PivotTable.PivotFields["FieldName"] 屬性獲取特定的字段
- 通過(guò) PivotField.HideItemDetail(string itemValue, bool isHiddenDetail) 方法針對(duì)具體項(xiàng)折疊或展開(kāi)
- 使用 Workbook.SaveToFile() 方法保存結(jié)果文件
- 使用 Workbook.Dispose() 方法釋放文檔對(duì)象
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載含有透視表的原 Excel 文檔
workbook.LoadFromFile("透視表.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 獲取第一個(gè)透視表
pivotTable = sheet.PivotTables[0]
# 獲取特定字段
idField = pivotTable.PivotFields["書(shū)店名稱(chēng)"]
# 設(shè)置展開(kāi)或折疊
idField.HideItemDetail("文化書(shū)店", True)
idField.HideItemDetail("西門(mén)書(shū)店", False)
idField.HideItemDetail("中原書(shū)店", False)
# 保存文件
workbook.SaveToFile("結(jié)果.xlsx", ExcelVersion.Version2016)
# 釋放對(duì)象
workbook.Dispose()結(jié)果預(yù)覽:

(Python 展開(kāi)或折疊數(shù)據(jù)透視表)
小結(jié)
在本教程中,我們了解了 Python 創(chuàng)建透視表、Python 按列值對(duì)透視表進(jìn)行排序和 Python 展開(kāi)或折疊透視表中的行的方法。
到此這篇關(guān)于淺析Python如何在Excel中應(yīng)用數(shù)據(jù)透視表的文章就介紹到這了,更多相關(guān)Python Excel數(shù)據(jù)透視表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python-docx把dataframe表格添加到word文件中
用Python-docx庫(kù),可以輕松地添加表格到Word文檔中,本文主要介紹了python-docx把dataframe表格添加到word文件中,感興趣的可以了解一下2023-08-08
Python實(shí)現(xiàn)線程池之線程安全隊(duì)列
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)線程池之線程安全隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
python通過(guò)PyQt5實(shí)現(xiàn)登錄界面的示例代碼
本文主要介紹了python通過(guò)PyQt5實(shí)現(xiàn)登錄界面的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
python數(shù)據(jù)封裝json格式數(shù)據(jù)
本次內(nèi)容是小編在網(wǎng)上整理的關(guān)于如何python數(shù)據(jù)封裝json格式的內(nèi)容總結(jié),有興趣的讀者們參考下。2018-03-03
Python實(shí)現(xiàn)加解密,編碼解碼和進(jìn)制轉(zhuǎn)換(最全版)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)加解密、編碼解碼、進(jìn)制轉(zhuǎn)換、字符串轉(zhuǎn)換的最全版操作方法,文中的示例代碼講解詳細(xì),大家可以收藏一下2023-01-01

