利用python匯總統(tǒng)計(jì)多張Excel
為什么越來(lái)越多的非程序員白領(lǐng)都開始學(xué)習(xí) Python ?他們可能并不是想要學(xué)習(xí) Python 去爬取一些網(wǎng)站從而獲得酷酷的成就感,而是工作中遇到好多數(shù)據(jù)分析處理的問(wèn)題,用 Python 就可以簡(jiǎn)單高效地解決。本文就通過(guò)一個(gè)實(shí)際的例子來(lái)給大家展示一下 Python 是如何應(yīng)用于實(shí)際工作中高效解決復(fù)雜問(wèn)題的。
背景
小明就職于一家戶外運(yùn)動(dòng)專營(yíng)公司,他們公司旗下有好多個(gè)品牌,并且涉及到很多細(xì)分的行業(yè)。小明在這家公司任數(shù)據(jù)分析師,平時(shí)都是通過(guò) Excel 來(lái)做數(shù)據(jù)分析的。今天老板丟給他一個(gè)任務(wù):下班前篩選出集團(tuán)公司旗下最近一年銷售額前五名的品牌以及銷售額。
對(duì)于 Excel 大佬來(lái)說(shuō),這不就是分分鐘的事嗎?小明并沒有放在眼里,直到市場(chǎng)部的同事將原始的數(shù)據(jù)文件發(fā)給他,他才意識(shí)到事情并沒有那么簡(jiǎn)單:
這并不是想象中的排序取前五就行了。這總共有90個(gè)文件,按常規(guī)的思路來(lái)看,他要么將所有文件的內(nèi)容復(fù)制到一張表中進(jìn)行分類匯總,要么將每張表格進(jìn)行分類匯總,然后再最最終結(jié)果進(jìn)行分類匯總。
想想這工作量,再想想截止時(shí)間,小明撓了撓頭,感覺到要漸漸頭禿。
思路分析
這種體力活,寫程序解決是最輕松的啦。小明這時(shí)候想到了他的程序員好朋友小段,于是他把這個(gè)問(wèn)題拋給了小段。
小段縷了下他那所剩無(wú)幾的頭發(fā),說(shuō):so easy,只需要找潘大師即可。
小明說(shuō):你搞不定嗎?還要找其他人!
小段苦笑說(shuō):不不不,潘大師是 Python 里面一個(gè)處理數(shù)據(jù)的庫(kù),叫 Pandas ,俗稱 潘大師。
小明說(shuō):我不管什么大師不大師,就說(shuō)需要多久搞定。
小段說(shuō):給我?guī)追昼妼懗绦?,再跑幾秒鐘就好了?/p>
小明發(fā)過(guò)去了膜拜大佬的表情。
小段略微思考了下,整理了一下程序思路:
- 計(jì)算每張表每一行的銷售額,用“訪客數(shù) * 轉(zhuǎn)化率 * 客單價(jià)”就行。
- 將每張表格根據(jù)品牌匯總銷售額。
- 將所有表格的結(jié)果匯總成一張總表
- 在總表中根據(jù)品牌匯總銷售額并排序
編碼
第零步,讀取 Excel :
import pandas as pd df = pd.read_excel("./tables/" + name)
第一步,計(jì)算每張表格內(nèi)的銷售額:
df['銷售額'] = df['訪客數(shù)'] * df['轉(zhuǎn)化率'] * df['客單價(jià)']
第二步,將每張表格根據(jù)品牌匯總銷售額:
df_sum = df.groupby('品牌')['銷售額'].sum().reset_index()
第三步,將所有表格的結(jié)果匯總成一張總表:
result = pd.DataFrame() result = pd.concat([result, df_sum])
第四步,在總表中根據(jù)品牌匯總銷售額并排序:
final = result.groupby('品牌')['銷售額'].sum().reset_index().sort_values('銷售額', ascending=False)
最后,我們來(lái)看看完整的程序:
import pandas as pd import os result = pd.DataFrame() for name in os.listdir("./tables"): try: df = pd.read_excel("./tables/" + name) df['銷售額'] = df['訪客數(shù)'] * df['轉(zhuǎn)化率'] * df['客單價(jià)'] df_sum = df.groupby('品牌')['銷售額'].sum().reset_index() result = pd.concat([result, df_sum]) except: print(name) pass final = result.groupby('品牌')['銷售額'].sum().reset_index().sort_values('銷售額', ascending=False) pd.set_option('display.float_format', lambda x: '%.2f' % x) print(final.head())
最后的結(jié)果是這樣的:
品牌 銷售額
15 品牌-5 1078060923.62
8 品牌-17 1064495314.96
4 品牌-13 1038560274.21
3 品牌-12 1026115153.00
13 品牌-3 1006908609.07
可以看到最終的前五已經(jīng)出來(lái)了,整個(gè)程序運(yùn)行起來(lái)還是很快的。
幾分鐘之后,小段就把結(jié)果給小明發(fā)過(guò)去了,小明感動(dòng)得內(nèi)牛滿面,直呼改天請(qǐng)吃飯,拜師學(xué)藝!
總結(jié)
本文主要是想通過(guò)一個(gè)實(shí)際的案例來(lái)向大家展示潘大師(Pandas)的魅力,特別是應(yīng)用于這種表格處理,可以說(shuō)是太方便了。寫過(guò)程序的可能都有點(diǎn)熟悉的感覺,這種處理方式有點(diǎn)類似于 SQL 查詢語(yǔ)句。潘大師不僅能使我們的程序處理起來(lái)變得更簡(jiǎn)單高效,對(duì)于需要經(jīng)常處理表格的非程序員也是非常友好的,上手起來(lái)也比較簡(jiǎn)單。
示例代碼:https://github.com/JustDoPython/python-examples/tree/master/xianhuan/pandasexcel
以上就是利用python匯總統(tǒng)計(jì)多張Excel的詳細(xì)內(nèi)容,更多關(guān)于python匯總統(tǒng)計(jì)多張Excel的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python實(shí)戰(zhàn)之實(shí)現(xiàn)excel讀取、統(tǒng)計(jì)、寫入的示例講解
- python jieba分詞并統(tǒng)計(jì)詞頻后輸出結(jié)果到Excel和txt文檔方法
- Python實(shí)現(xiàn)讀寫sqlite3數(shù)據(jù)庫(kù)并將統(tǒng)計(jì)數(shù)據(jù)寫入Excel的方法示例
- 用python實(shí)現(xiàn)簡(jiǎn)單EXCEL數(shù)據(jù)統(tǒng)計(jì)的實(shí)例
- Python實(shí)現(xiàn)對(duì)excel文件列表值進(jìn)行統(tǒng)計(jì)的方法
- 利用Python實(shí)現(xiàn)簡(jiǎn)單的Excel統(tǒng)計(jì)函數(shù)
相關(guān)文章
使用 NumPy 和 Matplotlib 繪制函數(shù)圖
Matplotlib 是 Python 的繪圖庫(kù)。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython2021-09-09NumPy.npy與pandas DataFrame的實(shí)例講解
今天小編就為大家分享一篇NumPy.npy與pandas DataFrame的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07運(yùn)行獨(dú)立 pyspark 時(shí)出現(xiàn) Windows 錯(cuò)誤解決辦法
在本篇文章里小編給大家分享的是一篇關(guān)于運(yùn)行獨(dú)立 pyspark 時(shí)出現(xiàn) Windows 錯(cuò)誤解決辦法,對(duì)此有需求的方法可以參考下。2021-12-12Python數(shù)據(jù)分析從入門到進(jìn)階之分類算法全面教程
數(shù)據(jù)分析是處理和解釋數(shù)據(jù)以發(fā)現(xiàn)有用信息和洞察的過(guò)程,其中,分類算法是數(shù)據(jù)分析領(lǐng)域的一個(gè)重要組成部分,它用于將數(shù)據(jù)分為不同的類別或組,本文將介紹分類算法的基本概念和進(jìn)階技巧,以及如何在Python中應(yīng)用這些算法,包括示例代碼和實(shí)際案例2023-11-11python查詢MySQL將數(shù)據(jù)寫入Excel
這篇文章主要介紹了python如何查詢MySQL將數(shù)據(jù)寫入Excel,幫助大家利用python高效的辦公,感興趣的朋友可以了解下2020-10-10python jieba分詞并統(tǒng)計(jì)詞頻后輸出結(jié)果到Excel和txt文檔方法
本篇文章主要介紹了python jieba分詞并統(tǒng)計(jì)詞頻后輸出結(jié)果到Excel和txt文檔方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02