如何在 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 数据框中的行或列时,此概念特别有用。我们建议读者尝试在更多数据集上进行分布,以便对该主题有更多信心。