為了要能夠在海量的數據資料中,透過資料分析的方式來得知其中的價值,進而做出決策或發現趨勢,就需要簡單的統計方法來幫助理解資料內容,才有辦法將資料做最有效的應用。
所以,本文就以Kaggle網站的星巴克滿意度調查資料集(Starbucks satisfactory survey.csv)為例,分享三個常用的Pandas套件統計方法(Method)來解讀資料內容,包含:
- Pandas value_counts統計欄位資料方法
- Pandas groupby群組欄位資料方法
- Pandas aggregate匯總欄位資料方法
一、Pandas value_counts統計欄位資料方法
在開始本文的實作前,大家可以先開啟Starbucks satisfactory survey.csv檔案,將每個欄位標題重新命名,方便後續Pandas套件的欄位存取,否則既有的欄位標題為一長串的滿意度問題,不易存取。筆者修改後的結果及說明如下圖:
修改完後,利用Pandas套件的read_csv()方法(Method)來讀取資料集,如下範例:
import pandas as pd df = pd.read_csv('Starbucks satisfactory survey.csv') print(df)
截取部分執行結果
舉例來說,我們想要藉由這個星巴克滿意度調查的資料集中,瞭解各個職業的顧客比例,也就能夠利用Pandas套件的value_counts()方法(Method),來統計Job(職業)欄位的資料內容個數,如下範例:
import pandas as pd df = pd.read_csv('Starbucks satisfactory survey.csv') job_count = df.value_counts('Job') print(job_count)
執行結果
二、Pandas groupby群組欄位資料方法
而第二個最常用來解讀資料的方法,就是利用群組化的方式來概觀(Overview)整體資料,透過不同的群組角度,就能夠更深入的瞭解資料。
在剛剛的執行結果中,可以看到各個職業的資料比例,這時候如果想要群組相同的職業,並且能夠彈性檢視不同群組的所有欄位資料,就可以使用Pandas套件的groupby()方法(Method),依據Job(職業)欄位來群組資料,如下範例:
import pandas as pd df = pd.read_csv('Starbucks satisfactory survey.csv') job_group = df.groupby(['Job']) print(job_group)
執行結果
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x07DE4F88>
將資料進行群組化後,得到了DataFrameGroupBy物件,我們就可以使用get_group()方法(Method),指定Job(職業)欄位中的不同群組,來檢視其中的所有欄位,如下範例:
import pandas as pd df = pd.read_csv('Starbucks satisfactory survey.csv') job_group = df.groupby(['Job']) print(job_group.get_group('Employed')) #取得職業欄位中的就業人員群組
截取部分執行結果
當然,利用Pandas套件的groupby()方法(Method)群組化資料後,也可以使用value_counts()方法(Method)來統計某一個欄位的資料內容個數。
像是想要知道各個職業群組的EnjoyType(星巴客享用方式)欄位資料個數,就可以如下範例的作法:
import pandas as pd df = pd.read_csv('Starbucks satisfactory survey.csv') job_group = df.groupby(['Job']) print(job_group['EnjoyType'].value_counts())
執行結果
三、Pandas aggregate匯總欄位資料方法
在進行資料分析時,少不了數值資料的計算,而Pandas套件也提供了aggregate()方法(Method),能夠快速匯總與計算欄位資料。
以ServiceRate(服務評價)欄位為例,想知道各個職業群組的最低評價(min)、最高評價(max)、平均評價(mean)與中位數(median),就可以利用Pandas套件的aggregate()方法(Method)來匯總,如下範例:
import pandas as pd df = pd.read_csv('Starbucks satisfactory survey.csv') job_group = df.groupby(['Job']) print(job_group['ServiceRate'].aggregate(['min', 'max', 'mean', 'median']))
執行結果
四、小結
蒐集到所需的資料後,檢視欄位內容與瞭解其中透露的訊息非常重要,而本文分享了最常使用的三個Pandas套件方法(Method),分別為value_counts()、groupby()與aggregate(),並且搭配實際的滿意度調查資料集,來初步解讀資料內容,相信有助於大家在資料分析的過程中,能夠對資料有基本的掌握。
除此之外,大家還有使用什麼Pandas套件方法(Method)或技巧來瞭解資料內容呢?歡迎在底下留言和我分享交流唷~
如果您喜歡我的文章,請幫我按五下Like(使用Google或Facebook帳號免費註冊),支持我創作教學文章,回饋由LikeCoin基金會出資,完全不會花到錢,感謝大家。
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(上)
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(下)
- Visual Studio Code漂亮印出Pandas DataFrame資料的實用方法
- [Pandas教學]資料視覺化必懂的Pandas套件繪製Matplotlib分析圖表實戰
- [Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧
- 解析Python網頁爬蟲如何有效整合Pandas套件提升資料處理效率
- [Pandas教學]掌握Pandas DataFrame讀取網頁表格的實作技巧
- [Pandas教學]資料分析必懂的Pandas DataFrame處理雙維度資料方法
- [Pandas教學]資料分析必懂的Pandas Series處理單維度資料方法
留言
張貼留言