我用Python做了一個咖啡館數據分析

點點寫在前面:
這次迎來了一位Python二期學員的分享,他用行動告訴我們如何花四個多月業余時間完成Python基礎學習,然后今天在這里分享一個檢驗學習成果的咖啡分析案例。這期間他的學習路可謂是一路問過來的,記得從最開始他在群里反復問老師到后面可以幫助老師解決大家的問題。也許我們經常會說自己沒時間學習,暫時不考慮沒規劃之類。但如果真正想去做我相信一定有時間的。

想學習數據分析和python的一定要看到最后啊!!

這幾個月以來,大家都能在我的朋友圈看到我在學Python的東西,現在基礎學得差不多了。所以我準備接下來慢慢做一些小案例,跟大家一起分享學習。

因為會Python操作和會用Python進行數據分析,完全是兩回事。要學會用工具進行分析,就必須多練習,多訓練。

在做案例前,我還想回答大家一個疑問,就是excel做數據分析可以實現Python一樣的效果,那用Python的意義在哪呢?

經過這段時間學習理解,我的回答是:

第一,在處理海量數據時,Python效率遠高于excel。一般幾萬行的數據以上,excel基本就無能為力,很卡了。但是Python依然可以行云流水,效率高幾十倍上百倍都有可能。

第二,Python的自動化水平非常高。你也許覺得excel的VBA一樣可以自動化對不對?但是VBA有個致命弱點是,它只能基于excel內部進行自動化,其他方面就沒辦法了。比如你要對硬盤某些儲存幾百個的文件名稱批量修改,VBA沒辦法,但Python實現起來很簡單。

第三,Python是可以做算法模型的。Python語言可以讓你搞懂一些最基礎的算法原理,然后根據這些搭建一些算法模型,并通過matplotlib模塊表現出來。.

下面我想通過一個咖啡公司的數據做一個簡單的數據分析案例,從導入數據到最后形成圖表,過一下整個流程,讓大家知道,Python數據分析到底是怎么一回事。

1

準備數據

1、導入python數據分析模塊三劍客:pandas\matplotlib\numpy2、用read_excel()方法導入數據源

image

輸出結果截圖如下(部分):

image

可以看到有這些數據:訂單日期、市場類別、區域、產品類別、產品名稱、預計銷售成本、預計毛利、預計利潤、預計銷售額、銷售成本、存貨、毛利、利潤額、銷售額等等。

2

數據清洗

1、缺失值的處理

image

可以看到,這份數據很干凈,沒有空值。缺失值查詢也可以用info()方法。

如果數據中有缺失值,我們可以用dropna()方法進行刪除,或者用fillna()進行填充。

2、重復值處理很多數據都是有重復值的,這個在數據分析前必須刪除掉,不然影響結果的準確度,清洗方法為drop_duplicates()

image

結果顯示,無重復。完了,我找的這個數據可能是別人已經清洗過的了,可能不需要我清洗了,打擾了。

3

數據分析

1、數據整體情況把握,用shape方法查看維度。

image

結果顯示,這個數據有4248行,14列。

2、用describe()方法進行描述性分析

image

從這個步驟,想必你已經看出Python的強大之處了,一個小方法,瞬間可以查看各列數據的計數、平均數、極值、方差、4分位數等等。當然,如果你這樣寫:describe(include='all'),數據會更加詳細。

3、排序分析比如我想看每個產品利潤額從高到低的分析。

image

sort_values(by='利潤額')表示按利潤額排序,ascending=False表示降序排序,head()數據太大了,所以我用這個函數默認取前5個數據。

4、數據分組(跟SQL中的分組一樣)比如,我想看不同產品類別的利潤額大小。

image

我用groupby()查看了利潤額和銷售額,根據肉眼,你一下估計看不出利潤額哪個大對不對?那可以根據上面我介紹的排序知識來排序。

image

超快吧,要比excel方便對不對。

5、根據條件查詢數據比如,我要看看哪些產品有負利潤。

image

發現普洱茶的部分產品很多是虧本的。也許你想,如果我只想查詢清涼茶的負利潤產品呢?也可以的,在條件查詢中多加個條件就好了。如圖:

image

看到這里,你應該可以根據自己的分析需求運用條件格式暢所欲為了吧。是不是比excel嵌套會好用一點呢,關鍵excel如果碰到大數據嵌套會,人會很崩潰。比如我有次看到同事為了匹配數據一跑數據就是一兩個小時。這在Python里是分分鐘的事。

6、條件復雜一點分析(透視表)比如,我要看看不同區域清涼茶的利潤額和銷售額的求和、平均值、極值呢?

image

這就需要用到上圖展示中的pivot_table(),這就是透視表功能。這個功能可以讓你實現各種復雜分析。但需要熟練。

7、增加一列,算利潤率比如我要算利潤率,那么我就得用利潤額除以銷售額,再換成百分比對不對?如圖:

image

先算出利潤率,這時候是一個小數,那么我們得想辦法把小數轉化為百分數,而且需要添加到表格里去。這時候就要用到lambda匿名函數了、格式化函數format、以及聚合函數apply了。

到此為止,我把我們日常數據分析的基本流程和分析方法演示了一遍了。接下來開始最后一個模塊,得快點說完了,現在凌晨1點,明天還得上班。

4

數據可視化

Python的圖表功能也很強大,可以有各種組合形式,然后圖表如果設置格式的話,可以制作得很專業且清晰,因此很多商業圖表制圖,都會借助Python。下面我只會簡單展示,因為復雜的東西我目前也沒辦法隨心所欲做出來,雖然我知道方法。

1、各產品種類利潤額的圖

image

2、查看各種產品的利潤額分布在哪些區間

image

這是一個簡單箱式圖能看出極值、特殊值、4分位值,中位數等等。

3、雷達圖這個就我隨便畫一個了,沒時間根據這個數據來做了,現在凌晨1點半,要睡了。

image
image

以上,就是東哥整理出來的用Python進行數據分析的全過程。

如果大家熟練了,就可以在這個基礎上玩出各種花樣了。我將在接下來的時間里,繼續做一些分析案例,希望能分享一些比較容易上手,又能符合數據分析行業實際工作的東西出來。

大家有更好的方法和案例,也可以一起共享,共同學習進步。

想學習python數據分析的可以加我們的扣扣群 839101370 有資料可分享哦

備注:Python學習并不難,但是需要堅持,我正式學是從今年3月23日開始的,到現在不到5個月。當然Python有很多方向,比如web開發、數據分析與科學計算、爬蟲、數據挖掘與機器學習、算法人工智能等等,我只是選擇了數據分析方向。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容