Python – Pandas 中的Axis 控制

Feature_pic_of_Pandas_axis_control

前言:

若要說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  |
             ↓         ↓

範例:

enter image description here

我們以維基百科上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裡面可以直接視覺化選取,務必要搞清楚,不然處理資料常常弄得霧沙沙,浪費很多時間。

參考:

https://pandas.pydata.org/docs/index.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *