對(duì)于excel表中數(shù)據(jù)的處理,在沒(méi)有外界的幫助時(shí)弓候,有時(shí)會(huì)顯得比較麻煩郎哭,因此采用Python進(jìn)行復(fù)制的自動(dòng)化辦公,就會(huì)顯得非常的便捷菇存。特別是對(duì)于許多重復(fù)而枯燥的工作夸研。
今天,小編就帶領(lǐng)大家依鸥,以實(shí)際的動(dòng)手操作亥至,通過(guò)xlsxwriter函數(shù)來(lái)簡(jiǎn)單的分析一下,我國(guó)自2018年第四季度至2020年第一季度的GDP變化贱迟,來(lái)看一下姐扮,疫情下我國(guó)國(guó)內(nèi)生產(chǎn)總值的變化情況。
1.兵馬未動(dòng)衣吠,糧草先行茶敏,先安裝庫(kù)
首先,為大家簡(jiǎn)單的介紹一下xlsxwriter函數(shù)庫(kù)蒸播,xlsxwriter庫(kù)是基于python語(yǔ)言的excel操作模塊睡榆,它可以用來(lái)操作多個(gè)工作表中的文字萍肆,數(shù)字和公式,以及插入圖表等工作胀屿。
大家只需要pip3 install xlsxwriter即可安裝xlsxwriter函數(shù)庫(kù)塘揣。下圖是為大家簡(jiǎn)單的介紹xlsxwriter的使用方式:
1).船艦一個(gè)workbook實(shí)例,相當(dāng)于創(chuàng)建一個(gè)excel表
book = xwriter.Workbook(u"demo.xlsx")
2).添加一個(gè)工作簿
grade = book.add_worksheet("成績(jī)單")
3).工作簿中寫入數(shù)據(jù)
grade.write("A1", "姓名") # 在A1的表格里寫入姓名
grade.write("B1", "學(xué)號(hào)") # 在B1的表格里寫入學(xué)號(hào)
grade.write("C1", "成績(jī)") # 在B1的表格里寫入學(xué)號(hào)
4).我們的成績(jī)
grades = (
["John", 10001, 92],
["William", 10021, 93],
["Tony", 10005, 92],
["Young", 10031, 94],
)
5).初始化成績(jī)要寫入的位置
row = 1
col = 0
6).將成績(jī)逐個(gè)的寫入到表格里面
for i, item in enumerate(grades):
grade.write(row, col, item[0]) # 寫入姓名
grade.write(row, col+1, item[1]) # 寫入學(xué)號(hào)
grade.write(row, col+2, item[2]) # 寫入成績(jī)
row += 1
7).合并單元格 寫入內(nèi)容
mergeRange='A6'+':B6'
合并單元格的范圍宿崭,大都采用"A2:D2"這種形勢(shì)亲铡。注意的是,兩邊都是閉的
8).合并單元格并寫入"最大值:"這幾個(gè)元素
grade.merge_range(mergeRange,'最大值:')
9).寫入公式,求取最大值
maxfunc = "=max(C2:C5)"
grade.write(5,2,maxfunc)
最終我們的結(jié)果如下圖所示:
大家對(duì)照上面的程序和我們的結(jié)果可以看出葡兑,利用xlsxwriter函數(shù)庫(kù)對(duì)于excel表格的書(shū)寫很類似于我們的思維方式奖蔓,比如在“A1”單元格中寫入“姓名”兩個(gè)字。這種方式讓我們?cè)谑褂脁lsxwriter函數(shù)庫(kù)時(shí)更加的簡(jiǎn)單讹堤,方便吆鹤。
2.實(shí)戰(zhàn)干貨,用excel對(duì)GDP進(jìn)行分析
1).數(shù)據(jù)的準(zhǔn)備
在簡(jiǎn)單的介紹完xlsxwriter庫(kù)后洲守,接下來(lái)就是對(duì)于我國(guó)GDP的簡(jiǎn)單分析疑务。大概分這么幾步:
首先,我們需要從國(guó)家統(tǒng)計(jì)局的官網(wǎng)上下載自2018年第四季度以來(lái)的6個(gè)季度的GDP數(shù)據(jù)梗醇,小編下載的xml格式的數(shù)據(jù)知允;
并通過(guò)程序?qū)ml數(shù)據(jù)轉(zhuǎn)化為了excel的數(shù)據(jù)格式,大家可以直接獲取源碼叙谨;
將程序直接應(yīng)用在自己的數(shù)據(jù)中即可温鸽;
這里,小編將數(shù)據(jù)中的累積數(shù)據(jù)進(jìn)行了去除手负,只保留了單季的數(shù)據(jù)涤垫,如下圖所示:
我們將從橫向和縱向?qū)τ谏鲜龅臄?shù)據(jù)進(jìn)行簡(jiǎn)單的操作和分析。
2).數(shù)據(jù)的處理
首先我們來(lái)看一下虫溜,每行中所有數(shù)值的最大值為多少雹姊,程序和結(jié)果如下:
上述的程序中,我們利用求和公式衡楞,求得了每行數(shù)據(jù)中的最大值吱雏,由結(jié)果可以看出,最近的六個(gè)季度的GDP中瘾境,2019年的第四季度在各個(gè)指標(biāo)的排名中歧杏,都是第一位的,但是在2020年的第一個(gè)季度迷守,受到疫情的影響犬绒,各個(gè)產(chǎn)業(yè)都有回落。
3).數(shù)據(jù)分析
接著看一看2020年的第一季度GDP的同比到底有多少的下降兑凿。程序和結(jié)果如下圖所示:
程序中凯力,我們利用xlsxwriter庫(kù)提供的writer_formula函數(shù)和for循環(huán)來(lái)寫入公式茵瘾,我們分別對(duì)2020年第一季度的各個(gè)指標(biāo)進(jìn)行了同比的計(jì)算。
結(jié)果可以看出咐鹤,2020第一季度GDP同比下降了近7個(gè)百分點(diǎn)拗秘,其中,第二產(chǎn)業(yè)更是下降了近10個(gè)百分點(diǎn)祈惶。
4).用折線圖和柱狀圖顯示
接下來(lái)雕旨,為了能直觀的感受一下DGP變化的形勢(shì),小編為excel表中插入折線圖和柱狀圖捧请。程序和結(jié)果如下:
在上述的圖表中凡涩,我們可以看出:
2020年的第一季度的GDP出現(xiàn)了一個(gè)較大幅度的下滑,而且我國(guó)的GDP在一年的變化中疹蛉,呈現(xiàn)出了隨著季度而逐漸走高的趨勢(shì)活箕。
5).柱狀圖顯示
從下圖的柱狀圖中,我們能從第一氧吐、二讹蘑、三產(chǎn)業(yè)的經(jīng)濟(jì)總量上更加直觀的看出末盔,我國(guó)GDP的變化形式筑舅。第三產(chǎn)業(yè)成為了我國(guó)的第一支柱型產(chǎn)業(yè),而以農(nóng)業(yè)為代表的第一產(chǎn)業(yè)對(duì)于我國(guó)的國(guó)內(nèi)生產(chǎn)總值貢獻(xiàn)量遠(yuǎn)小于第二和第三產(chǎn)業(yè)陨舱。
以上就是小編今天為大家?guī)?lái)的基于xlsxwriter函數(shù)庫(kù)的分享翠拣,我們首先完成了xml數(shù)據(jù)到excel表格數(shù)據(jù)的轉(zhuǎn)換,然后利用xlsxwriter庫(kù)完成了對(duì)于excel表格數(shù)據(jù)的操作游盲,以及圖表的插入误墓。
大家可以現(xiàn)在就下載源碼,體驗(yàn)xlsxwriter帶來(lái)的自動(dòng)化excel數(shù)據(jù)處理的樂(lè)趣吧益缎。