如何在 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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告