![]() Excel 是數(shù)據(jù)管理中不可或缺的工具,然而手動(dòng)處理大量數(shù)據(jù)既繁瑣又容易出錯(cuò)。幸運(yùn)的是,Python 提供了豐富的工具和庫來幫助我們自動(dòng)化 Excel 文件的操作。在這篇文章中,我們將學(xué)習(xí)如何利用 Python 實(shí)現(xiàn) Excel 文件的讀取、寫入和數(shù)據(jù)處理。本文主要使用兩個(gè)庫:Pandas 和 openpyxl,前者負(fù)責(zé)數(shù)據(jù)操作,后者專注于 Excel 文件的讀寫。 學(xué)習(xí)內(nèi)容通過這篇文章,你將學(xué)到:
Pandas:讀取和處理 Excel 數(shù)據(jù)的利器Pandas 是數(shù)據(jù)分析領(lǐng)域中的核心庫,具有強(qiáng)大的數(shù)據(jù)操作和分析功能。Pandas 能夠快速讀取 Excel 文件,并將數(shù)據(jù)轉(zhuǎn)換為 DataFrame 數(shù)據(jù)結(jié)構(gòu),便于后續(xù)處理。Pandas 還提供豐富的數(shù)據(jù)處理方法,例如篩選、分組、聚合等,非常適合大批量的數(shù)據(jù)處理任務(wù)。 讀取 Excel 數(shù)據(jù)import pandas as pd# 讀取 Excel 文件中的數(shù)據(jù)file_path = 'data.xlsx'df = pd.read_excel(file_path, sheet_name='Sheet1')print('前五行數(shù)據(jù):')print(df.head()) 在上面的代碼中,我們用pd.read_excel() 方法讀取了一個(gè) Excel 文件,并指定讀取特定的工作表sheet_name。head() 方法可以查看前五行數(shù)據(jù),幫助我們快速了解數(shù)據(jù)的內(nèi)容。 數(shù)據(jù)處理假設(shè)我們有一張銷售數(shù)據(jù)表,包含銷售額、銷售員 和日期 等信息。我們可以利用 Pandas 的強(qiáng)大功能,對(duì)數(shù)據(jù)進(jìn)行篩選和分組。
通過 Pandas 的篩選和分組方法,我們可以快速完成數(shù)據(jù)篩選和分組匯總的任務(wù),尤其適合在數(shù)據(jù)量較大的情況下使用。 openpyxl:專注于 Excel 文件的創(chuàng)建與格式化openpyxl 是專門用于處理 Excel 文件的 Python 庫,支持 Excel 文件的創(chuàng)建、編輯和保存。它特別適合需要控制文件格式、添加樣式或多表格操作的場景。 創(chuàng)建和寫入 Excel 文件在處理完數(shù)據(jù)之后,我們可能需要將結(jié)果保存到新的 Excel 文件中,這時(shí)就可以使用 openpyxl 來完成文件的創(chuàng)建和寫入。 from openpyxl import Workbook# 創(chuàng)建一個(gè)新的 Excel 工作簿wb = Workbook()ws = wb.activews.title = '銷售匯總'# 寫入標(biāo)題和數(shù)據(jù)ws.append(['銷售員', '總銷售額'])for index, row in sales_summary.reset_index().iterrows(): ws.append(row.tolist())# 保存文件wb.save('sales_summary.xlsx') 在上面的代碼中,我們創(chuàng)建了一個(gè)新的工作簿Workbook(),并將 Pandas 計(jì)算的匯總數(shù)據(jù)寫入到新表格中。openpyxl 的append() 方法支持逐行寫入數(shù)據(jù),非常方便。 格式化 Excel 文件如果需要美化 Excel 文件,比如添加字體樣式、調(diào)整列寬等,openpyxl 提供了豐富的選項(xiàng)。下面我們?yōu)闃?biāo)題添加加粗樣式,并設(shè)置列寬。
通過上面的代碼,我們?yōu)?Excel 文件的標(biāo)題行設(shè)置了加粗格式,并調(diào)整了列寬,最終生成了一個(gè)更具可讀性的報(bào)表文件。 實(shí)戰(zhàn)案例:從數(shù)據(jù)分析到生成 Excel 報(bào)表將 Pandas 和 openpyxl 結(jié)合使用,我們可以輕松實(shí)現(xiàn)從數(shù)據(jù)分析到生成報(bào)表的完整流程。例如,假設(shè)我們有一張每日銷售數(shù)據(jù)表,我們希望計(jì)算每個(gè)銷售員的總銷售額,并將結(jié)果保存到新的 Excel 文件中。 import pandas as pdfrom openpyxl import Workbookfrom openpyxl.styles import Font# Step 1: 讀取數(shù)據(jù)file_path = 'sales_data.xlsx'df = pd.read_excel(file_path, sheet_name='Sheet1')# Step 2: 數(shù)據(jù)處理(分組匯總)sales_summary = df.groupby('銷售員')['銷售額'].sum()# Step 3: 創(chuàng)建 Excel 文件并寫入數(shù)據(jù)wb = Workbook()ws = wb.activews.title = '銷售匯總'ws.append(['銷售員', '總銷售額'])for index, row in sales_summary.reset_index().iterrows(): ws.append(row.tolist())# Step 4: 設(shè)置格式for cell in ws[1]: cell.font = Font(bold=True)ws.column_dimensions['A'].width = 15ws.column_dimensions['B'].width = 20# Step 5: 保存文件wb.save('final_sales_report.xlsx') 這段代碼展示了一個(gè)完整的自動(dòng)化數(shù)據(jù)分析與報(bào)表生成流程,從讀取數(shù)據(jù)、處理數(shù)據(jù)到生成帶格式的 Excel 文件,所有步驟都可以通過 Python 實(shí)現(xiàn),大大節(jié)省了手工操作的時(shí)間。 小結(jié)在這篇文章中,我們學(xué)習(xí)了如何利用 Pandas 和 openpyxl 兩個(gè)庫高效處理 Excel 文件。Pandas 提供了強(qiáng)大的數(shù)據(jù)分析能力,能夠幫助我們快速操作和處理數(shù)據(jù),而 openpyxl 則為我們提供了靈活的 Excel 文件編輯與格式控制功能。兩者結(jié)合,讓我們能夠輕松實(shí)現(xiàn) Excel 文件的自動(dòng)化操作,從數(shù)據(jù)處理到報(bào)表生成一氣呵成。 希望這篇文章能夠給你一些啟發(fā),讓你在日常數(shù)據(jù)處理中更加高效、靈活地使用 Python! |
|