Pandas 的 value_counts 方法
簡介
value_counts() 是 Pandas series 中很有用的方法。它可以取得 series 中每個唯一值的出現頻率,而且還可後讓頻率以百分比的方式展示。
這篇文章說明了 value_counts() 函式的使用方式。
底下使用 gapminder 資料集來示範。
個資料集是由 Gapminder 基金會由世界中許多重要的組織 (如聯合國) 中所收集到的資料。
底下可以看到這個資料包含了世界許多國外歷年來的人口數,以及人均 GDP。
載入資料的程式碼如下所示:
使用 value_counts() 統計每個大陸中資料出現的頻率。
底下的資料顯示 Africa 的資料量最多 (624筆), Asia 次之 (396) 筆…依此類推。
Gapminder 中的資料是每個大陸 (continent) 下,再依國家 (country) 來臚列資料。
所以由統計資料也可知道 Africa 的國家最多,Asia 中次之…依此類推。
程式碼如下,其中 gapdf.continent 代表我們要在 gapdf 這個 dataframe 的 continent 欄位上做 value_counts() 的動作:
結果如下:
除了數值的資料外,也可以呈現百分比的資料,只要將 normalize 屬性設為 True 即可。
其結果如下
秀出來的資料預設是經過排序,且是由大到小排 (descending order).
如果要由「小到大排」,那就把 ascending 設為 True 即可。
其結果如下:
結論
在這篇文章中,我們介紹了 value_counts() 函式的用法。
value_counts() 可以讓我們取得 dataframe 中某個欄位中數值資料的統計結果。
在 Pandas 中,另一個可以達到同樣功能的方法為 groupby。
不過 groupby 的功能又更為強大,而且全面。
Groupby 不只能做到統計資料出現的「個數」,還可以計算資料的平均值,四分位數…等。
有興趣的網友可以參考這篇教學文件的說明。
留言
張貼留言