前言:
若要說Python處理資料表格中最好用的工具,大家一定會想到Pandas,之前文章也有介紹過
Python – Pandas (1) – Data Structure , read Data
相信有認真用過的人,對於Pandas文件裡面 Axis的解釋與用法相當疑惑,而且在很多功能函式中都有Axis這個參數。本文就來小小介紹一下,幫大家跳出坑。
說明:
一張圖解釋出 Pandas 對於表格內的資料如何透過 Axis = 0 或 Axis = 1 來控制資料選取時的定向。
Pandas號稱 Python的Excel,因此只要想一想,我們在操作Excel的時候,有時候要計算一整排的數值,可以用滑鼠點選要計算整排格子第一格點一下,按住Shift,再到最後一格點一下,就可以選出你要的範圍。
但在Python的世界程式資料沒有滑鼠來讓人類操作,只有用程式控制要怎麼表示? 答案就是 Axis
如下圖,要計算的表格中”利率方案”橫向的一整列 (Row),那就把 Axis 設定為 1
反之若我們要計算的是下圖中,A欄的資料一整行 (Column),就把Axis設定為0
+------------+---------+--------+
| | A | B |
+------------+---------+---------
| 利率方案 | 0.232615| 1.84632|----axis=1----->
+------------+---------+--------+
| |
| axis=0 |
↓ ↓
範例:
我們以維基百科上IMF的表格為例子,2010-2019的前十名國家的經濟預估表格
AXIS 1 定向是橫的
假設我們要計算的是美國2010 – 2019年的平均數,在pandas裡面我們用 .mean(),其實就是Excel裡面的 = AVG (),那我們程式可以這樣寫
df.loc['United States','2010':'2019'].mean(axis=1)
AXIS 0 定向是直的
如果我們要計算的是2015年表格中前九名的國家,美、中、日… 巴西,可以用下面的方式來寫。
df.loc['United States':'Brazil','2015'].mean(axis=0)
白話文 : 美國到巴西在2015這行的平均數
小結:
Pandas是 Python的Excel 。 因此很多時候你必須要先思考一下,這裡面談的東西是Excel裡面的什麼功能,只要一點通了,就會全通了。Pandas資料定向的控制,不像是在Excel裡面可以直接視覺化選取,務必要搞清楚,不然處理資料常常弄得霧沙沙,浪費很多時間。
參考: