如何在 Pandas 中使用 axis=0 和 axis=1?


作為程式設計師,當我們需要處理資料時,可能需要僅對行或列或兩者都執行操作。在 Pandas 中,axis 指的是函式或操作如何應用於資料框或序列。Pandas 只能將 0 或 1 作為引數傳遞給 axis 屬性。在本文中,我們將學習如何在 Pandas 中使用 axis=0 和 axis=1。

理解 axis

在繼續之前,讓我們簡要介紹一下 Pandas 的 axis。眾所周知,Pandas 中的資料框是一個由行和列組成的二維表格常量。

  • Axis 0 - Axis 0 指的是資料框或序列的行。它通常被稱為“索引軸”。當沿 axis 0 應用操作時,意味著該操作應用於資料框或序列的每一行。

  • Axis 1 - Axis 1 指的是資料框或序列的列。它通常被稱為“列軸”。當沿 axis 1 應用操作時,意味著該操作應用於資料框或序列的每一列。

使用 axis=0

如前所述,axis=0 指的是資料框或序列的行。我們可以使用此屬性將任何內建函式應用於行。請注意,這會處理資料中存在的任何空值。在這種情況下,它將簡單地忽略該元素。

語法

row_operation = df.<operation>(axis=0)

這裡 df 是我們需要應用操作的資料框。<operation> 是我們需要執行的操作。例如,“sum” 是一個有效操作。確保操作有效。axis=0 指定我們需要按行應用操作。

示例

在下面的程式碼中,我們首先使用別名匯入了 Pandas 和 NumPy 庫。接下來,我們使用 Pandas 庫的 Data Frame 方法建立了一個名為 df 的資料框。我們沿 axis=0(即按行)對資料框應用了求和操作。這裡第一行、第二行和第三行的值為 1、4、7;因此,我們得到第一列的結果 1+4+7 = 12。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
                   columns=['A', 'B', 'C'])
row_sum = df.sum(axis=0)
print(row_sum)

輸出

A    12
B    15
C    18
dtype: int64

使用 axis=1

axis=1 指的是資料框或序列的列。我們可以使用此屬性將任何內建函式應用於列。請注意,這也會處理資料中存在的任何空值。在這種情況下,它將簡單地忽略該元素。

語法

column_operation = df.<operation>(axis=1)

這裡 df 是我們需要應用操作的資料框。<operation> 是我們需要執行的操作。例如,“sum” 是一個有效操作。確保操作有效。axis=1 指定我們需要按列應用操作。

示例

在下面的程式碼中,我們首先使用別名匯入了 Pandas 和 NumPy 庫。接下來,我們使用 Pandas 庫的 Data Frame 方法建立了一個名為 df 的資料框。我們沿 axis=1(即按列)對資料框應用了求和操作。這裡第一行、第二行和第三行的值為 1、2、3;因此,我們得到第一列的結果 1+2+3 = 6,依此類推。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
                   columns=['A', 'B', 'C'])
column_sum = df.sum(axis=1)
print(column_sum)

輸出

0     6
1    15
2    24
dtype: int64

同時使用兩種操作

也可以依次使用這兩種操作。透過這種方式,我們可以訪問任何元素並虛擬遍歷整個資料框。例如,如果我們首先使用 axis=0,我們可以遍歷所有行,然後透過使用 axis=1,我們可以遍歷行內的列。

示例

在下面的程式碼中,我們使用 Data Frame Pandas 方法建立了一個名為 df 的資料框。接下來,我們使用 max 方法和 axis=1 對列應用最大值操作;之後,我們使用 sum 方法和 axis=0 對每一行的行應用求和操作。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['A', 'B', 'C'])
row_max = df.max(axis=1)
print("Maximum value in each row:")
print(row_max)
total_max = row_max.sum(axis=0)
print("Sum of maximum values:")
print(total_max)

輸出

Maximum value in each row:
0    3
1    6
2    9
dtype: int64
Sum of maximum values:
18

結論

在本文中,我們學習瞭如何在 Pandas 中使用 axis=0 和 axis=1。當處理 Pandas 資料框中的行或列時,此概念特別有用。我們建議讀者嘗試在更多資料集上進行分佈,以便對該主題有更多信心。

更新於: 2023年7月28日

6K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.