Pandas 如何使用axis = 0和axis = 1
作为一个程序员,当我们处理数据时,可能需要仅对行或列进行操作,或同时对两者进行操作。在pandas中,轴指的是如何将函数或操作应用于数据框架或系列。Pandas只能取两个值,即0或1,作为轴属性的参数。在本文中,我们将学习如何在Pandas中使用axis = 0和axis = 1。
了解轴
在我们继续之前,让我们简要介绍一下pandas的轴。正如我们所知,pandas中的数据框是一个由行和列组成的二维表。
- 轴0 – 轴0指的是数据框或系列的行。它通常被称为“索引轴”。当对轴0应用操作时,意味着将该操作应用于数据框或系列的每一行。
-
轴1 – 轴1指的是数据框或系列的列。它通常被称为“列轴”。当对轴1应用操作时,意味着将该操作应用于数据框或系列的每一列。
使用axis = 0
如前所述,axis = 0指的是数据框或系列的行。我们可以使用此属性将任何内置函数应用于行。请注意,如果数据中存在空值,则会忽略该元素。
语法
row_operation = df.<operation>(axis=0)
这里df是我们需要应用操作的数据框。
示例
在下面的代码中,我们首先使用别名导入了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是我们需要应用操作的数据框。
示例
在下面的代码中,我们首先导入了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,我们可以遍历行内的列。
示例
我们在下面的代码中使用了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。当处理panda的数据框中的行或列时,这个概念特别有用。我们建议读者在更多的数据集上尝试这个操作,以对这个主题有更多的信心。