pandas-軸axis理解

目錄


之前寫了一篇關於numpy的axis=?的理解,可以翻看numpy-軸axis理解

其實pandas中的axis與numpy一樣,以二維數組爲例:
axis = 0代表高維在變,低維不變,即[0][0]、[1][0]、[2][0]…以列爲一組;
axis = 1代表高維不變,低維在變,即[0][0]、[0][1]、[0][2]…以行爲一組。

那麼爲什麼有時候在pandas中會遇到當axis = 0時,結果看似是以行爲一組,當axis = 1時,以列爲一組呢?

接下來用一個例子說明,只要按照高低維的方式去理解,就不會搞糊塗了。

導入數據:
在這裏插入圖片描述
我們想刪除含有NaN的那一列數據,這裏你可能會想,按照列刪除,應該axis = 0啊。

其實只要你按照高低維的方式去想,當axis = 1時,高維不變,低維在變,即按照行爲一組。
尋找每一行中有沒有NaN值,有的話就刪除該行對應位置的元素,通過對每一行的搜索,找到一個就刪除一個,從上到下累疊一起就像是按列刪除,其實是按行操作的。
在這裏插入圖片描述
同理,當axis = 0時,是按列操作,刪除每一列中爲NaN值對應位置的元素,從左到右疊在一起就像是按行刪除,其實是按列操作的。
在這裏插入圖片描述
以下的部分,就比較好理解。

當axis = 1,按行操作,標題倒序排序。
在這裏插入圖片描述
axis = 0,按列操作,行索引升序排序。
在這裏插入圖片描述
axis = 1,按行操作,將z行內容降序排序。
在這裏插入圖片描述
axis = 0,按列操作,將e列內容降序排序。
在這裏插入圖片描述
求和操作。
在這裏插入圖片描述
總結:
1、pandas的axis與numpy的axis在理解上都是一樣的,axis = 0代表高維在變,低維不變,即按照列操作;axis = 1代表高維不變,低維在變,即按照行操作。
2、對於刪除drop、dropna操作,理解稍微難一點,其實原理是一樣的,當axis = 0時,看似按行操作,其實是按列刪除值;當axis = 1時,看似按列操作,其實是按行刪除值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章