
作者:俊欣
來源:關(guān)于數(shù)據(jù)分析與可視化
今天小編來介紹一下如何用Python來操作Excel文件,當(dāng)中需要用到的模塊叫做openpyxl,其中我們會涉及到一些基本常規(guī)的操作,例如有
小編默認(rèn)大家已經(jīng)都安裝好了openpyxl模塊了,要是還沒有安裝的話,可以通過pip命令行,代碼如下
pip install openpyxl
我們首先來導(dǎo)入Excel數(shù)據(jù)集,代碼如下
# 導(dǎo)入模塊from openpyxl import Workbook, load_workbook# 導(dǎo)入Excel數(shù)據(jù)集wb = load_workbook(r"grades.xlsx")# 得到正在運(yùn)行的工作表sheet = wb.active# 工作表的名稱叫做print(sheet)
output
我們通過傳入單元格的位置來打印其中的數(shù)值,代碼如下
print(sheet["A1"].value)print(sheet["A2"].value)print(sheet["B3"].value)
output
NameTestMale
我們還可以嘗試來改變某個單元格的數(shù)值,代碼如下
sheet["A1"] = "Dylan"# 保存wb.save(r"grades.xlsx")
在保存過之后,我們來看一下結(jié)果如何,如下圖所示
我們嘗試在現(xiàn)有的Excel當(dāng)中添加一個工作表,代碼如下
# 添加一個新的工作表wb.create_sheet("Class B")# 返回以列表形式帶有工作表名稱print(wb.sheetnames)
output
['Class A', 'Class B']
我們嘗試新建一個工作簿,并且插入若干條數(shù)據(jù),代碼如下
# 創(chuàng)建一個新的工作簿new_wb = Workbook()ws = new_wb.active# 重命名工作表的名稱ws.title = "Test1"# 插入數(shù)據(jù)到新建的工作表中ws.append(["This","is","a","test"])new_wb.save("test.xlsx")
我們來看一下最后出來的結(jié)果,如下圖所示
我們嘗試來多插入幾條數(shù)據(jù),代碼如下
# 插入更多的數(shù)據(jù)ws.append(["This","Is","Another","Test"])ws.append(["And","Yet","Another","Test"])ws.append(["End"])# 保存new_wb.save("test.xlsx")
如果是想插入某一行的話,調(diào)用的則是insert_rows()方法,具體代碼如下
# 前面的步驟一樣,導(dǎo)入工作簿和數(shù)據(jù)ws.insert_rows(1)wb.save("test.xlsx")
出來的結(jié)果如下圖所示
同理,如果是想要去刪除某一行的數(shù)據(jù)的話,調(diào)用的則是delete_rows()方法,具體代碼如下
ws.delete_rows(1)# 保存wb.save("test.xlsx")
出來的結(jié)果如下圖所示
我們來看一下該如何插入列和刪除列,插入列用到的方式是insert_cols(),代碼如下
# 新插入一列ws.insert_cols(2)
結(jié)果如下
而刪除列的方法是delete_cols(),
ws.delete_cols(1,2)
我們還可以進(jìn)行一系列的數(shù)據(jù)統(tǒng)計分析,首先我們先把需要用到的數(shù)據(jù)放入至Excel當(dāng)中去,
sales_data = { "蘋果": {"北京": 5000, "上海": 7000, "深圳": 6000, "香港": 10000}, "華為": {"北京": 8000, "上海": 4000, "深圳": 3000, "香港": 9000}, "小米": {"北京": 6000, "上海": 9000, "深圳": 5000, "香港": 6000}, "vivo": {"北京": 3000, "上海": 5000, "深圳": 4000, "香港": 7000} }
小編隨意生成了一點數(shù)據(jù),并且將其放置到Excel當(dāng)中去,代碼如下
# 創(chuàng)建一個新的工作簿sales_wb = Workbook()ws = sales_wb.active# 重命名工作表的名稱ws.title = "Sales"# 創(chuàng)建列名column_names = ["Product Name"] + list(sales_data["蘋果"].keys())ws.append(column_names)# 將一系列的數(shù)值都放置到工作表當(dāng)中去for product in sales_data: sales = list(sales_data[product].values()) ws.append([product] + sales)sales_wb.save("sales_data.xlsx")
我們來看一下出來的結(jié)果,如下圖所示
我們來指定某一列,并且求出其平均值,代碼如下
ws['B6'] = '=AVERAGE(B2:B5)'sales_wb.save("sales_data.xlsx")
我們來看一下出來的結(jié)果,如下圖所示
我們?yōu)槊恳蛔鞘械匿N售額都來做一個求和的計算,我們寫一個for循環(huán)來遍歷每一列,將每一列當(dāng)中的數(shù)據(jù)做一個求和,代碼如下
# 再添加新的一行的名稱ws['A' + str(ws.max_row + 1)] = "Total Sales"# 遍歷再求和for col in range(2, len(sales_data["蘋果"]) + 2): char = get_column_letter(col) ws[char + '6'] = f"=SUM({char + '2'}:{char + '5'})"
我們來看一下出來的結(jié)果,如下圖所示
我們也可以來更改字體的顏色,使得更加美觀一些,代碼如下
for col in range(1,ws.max_column+1): ws[get_column_letter(col) + '1'].font = Font('Arial', bold=True, size=13, color='00000080') sales_wb.save("sales_data.xlsx")
我們來看一下美化過之后的結(jié)果,如下圖所示
最后的最后,我們來繪制一張柱狀圖,來看一下不同的產(chǎn)品在每一個城市的銷售數(shù)據(jù)如何,橫坐標(biāo)對應(yīng)的產(chǎn)品類目,而縱坐標(biāo)對應(yīng)的則是銷售數(shù)據(jù),另外我們根據(jù)不同的城市會用不用的顏色來標(biāo)注出來,代碼如下
from openpyxl.chart import BarChart, Reference# 新建一個柱狀圖實例barchart = BarChart()# 確定數(shù)據(jù)的范圍data = Reference(ws, min_col=ws.min_column+1, max_col=ws.max_column, min_row=ws.min_row, max_row=ws.max_row-1)categories = Reference(ws, min_col=ws.min_column, max_col=ws.min_column, min_row=ws.min_row+1, max_row=ws.max_row-1)# 添加數(shù)據(jù)以及類目barchart.add_data(data, titles_from_data=True)barchart.set_categories(categories)# 繪制的數(shù)據(jù)放在哪個位置ws.add_chart(barchart, "G1")# 添加標(biāo)題barchart.title = '每座城市的產(chǎn)品銷售數(shù)據(jù)'# 圖表的類型barchart.style = 2sales_wb.save("sales_data.xlsx")
我們來看一下最后出來的結(jié)果,如下圖所示
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03