您好,登錄后才能下訂單哦!
本篇內容主要講解“Python秒處理多張Excel表的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python秒處理多張Excel表的方法”吧!
小明就職于一家戶外運動專營公司,他們公司旗下有好多個品牌,并且涉及到很多細分的行業。小明在這家公司任數據分析師,平時都是通過 Excel 來做數據分析的。今天老板丟給他一個任務:下班前篩選出集團公司旗下最近一年銷售額前五名的品牌以及銷售額。
對于 Excel 大佬來說,這不就是分分鐘的事嗎?小明并沒有放在眼里,直到市場部的同事將原始的數據文件發給他,他才意識到事情并沒有那么簡單
這并不是想象中的排序取前五就行了。這總共有90個文件,按常規的思路來看,他要么將所有文件的內容復制到一張表中進行分類匯總,要么將每張表格進行分類匯總,然后再最最終結果進行分類匯總。
想想這工作量,再想想截止時間,小明撓了撓頭,感覺到要漸漸頭禿。
這種體力活,寫程序解決是最輕松的啦。小明這時候想到了他的程序員好朋友小段,于是他把這個問題拋給了小段。
小段縷了下他那所剩無幾的頭發,說:so easy,只需要找潘大師即可。
小明說:你搞不定嗎?還要找其他人!
小段苦笑說:不不不,潘大師是 Python 里面一個處理數據的庫,叫 Pandas ,俗稱 潘大師。
小明說:我不管什么大師不大師,就說需要多久搞定。
小段說:給我幾分鐘寫程序,再跑幾秒鐘就好了!
小明發過去了膜拜大佬的表情。
小段略微思考了下,整理了一下程序思路:
計算每張表每一行的銷售額,用“訪客數 轉化率 客單價”就行。
將每張表格根據品牌匯總銷售額。
將所有表格的結果匯總成一張總表
在總表中根據品牌匯總銷售額并排序
第零步,讀取 Excel :
import pandas as pd df = pd.read_excel("./tables/" + name)
第一步,計算每張表格內的銷售額:
df['銷售額'] = df['訪客數'] * df['轉化率'] * df['客單價']
第二步,將每張表格根據品牌匯總銷售額:
df_sum = df.groupby('品牌')['銷售額'].sum().reset_index()
第三步,將所有表格的結果匯總成一張總表:
result = pd.DataFrame() result = pd.concat([result, df_sum])
第四步,在總表中根據品牌匯總銷售額并排序:
final = result.groupby('品牌')['銷售額'].sum().reset_index().sort_values('銷售額', ascending=False)
最后,我們來看看完整的程序:
import pandas as pd import os result = pd.DataFrame() for name in os.listdir("./tables"): try: df = pd.read_excel("./tables/" + name) df['銷售額'] = df['訪客數'] * df['轉化率'] * df['客單價'] 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())
最后的結果是這樣的:
品牌 銷售額 15 品牌-5 1078060923.62 8 品牌-17 1064495314.96 4 品牌-13 1038560274.21 3 品牌-12 1026115153.00 13 品牌-3 1006908609.07
可以看到最終的前五已經出來了,整個程序運行起來還是很快的。
到此,相信大家對“Python秒處理多張Excel表的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。