Pandas中axis=0和axis=1的区别


pandas中的许多函数要求您指定一个轴来应用特定的计算。

一般来说,适用以下经验法则:

  • axis=0 :应用“每列”计算
  • axis=1 :应用“每行”计算

以下示例展示了如何在不同场景中使用以下 pandas DataFrame 的axis参数:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

	team points assists rebounds
0 to 25 5 11
1 to 12 7 8
2 B 15 7 10
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
6 C 25 9 9
7 C 29 4 12

示例 1:求沿不同轴的平均值

我们可以使用axis=0来查找 DataFrame 中每列的平均值:

 #find mean of each column
df. mean (axis= 0 )

points 20.250
assists 7,750
rebounds 8,375
dtype:float64

输出显示 DataFrame 中每个数字列的平均值。

请注意,pandas 自动避免对“team”列进行平均,因为它是字符列。

我们还可以使用axis=1来查找 DataFrame 中每行的平均值:

 #find mean of each row
df. mean (axis= 1 )

0 13.666667
1 9.000000
2 10.666667
3 9.666667
4 12.333333
5 12.333333
6 14.333333
7 15.000000
dtype:float64

从结果我们可以看出:

  • 第一行的平均值是13.667
  • 第二行的平均值是9000
  • 第三行的平均值是10,667

等等。

示例 2:求沿不同轴的总和

我们可以使用axis=0来查找 DataFrame 中特定列的总和:

 #find sum of 'points' and 'assists' columns
df[[' points ', ' assists ']]. sum (axis= 0 )

points 162
assists 62
dtype: int64

我们还可以使用axis=1求 DataFrame 中每行的总和:

 #find sum of each row
df. sum (axis= 1 )

0 41
1 27
2 32
3 29
4 37
5 37
6 43
7 45
dtype: int64

示例 3:沿不同轴查找最大值

我们可以使用axis=0来查找 DataFrame 中特定列的最大值:

 #find max of 'points', 'assists', and 'rebounds' columns
df[[' points ', ' assists ', ' rebounds ']]. max (axis= 0 )

points 29
assists 12
rebounds 12
dtype: int64

我们还可以使用axis=1来查找 DataFrame 中每行的最大值:

 #find max of each row
df. max (axis= 1 )

0 25
1 12
2 15
3 14
4 19
5 23
6 25
7 29
dtype: int64

从结果我们可以看出:

  • 第一行的最大值是25
  • 第二行的最大值是12
  • 第三行中的最大值是15

等等。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何计算 Pandas 中列的平均值
如何计算 Pandas 中的列总和
如何找到 Pandas 中列的最大值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注