The Difference Between axis=0 and axis=1 in Pandas


Many functions in pandas require that you specify an axis along which to apply a certain calculation.

Typically the following rule of thumb applies:

  • axis=0: Apply the calculation “column-wise”
  • axis=1: Apply the calculation “row-wise”

The following examples show how to use the axis argument in different scenarios with the following pandas DataFrame:

import pandas as pd

#create DataFrame
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	A	25	5	11
1	A	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

Example 1: Find Mean Along Different Axes

We can use axis=0 to find the mean of each column in the DataFrame:

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

points      20.250
assists      7.750
rebounds     8.375
dtype: float64

The output shows the mean value of each numeric column in the DataFrame.

Notice that pandas automatically avoids calculating the mean of the ‘team’ column because it’s a character column.

We can also use axis=1 to find the mean of each row in the 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

From the output we can see:

  • The mean value in the first row is 13.667.
  • The mean value in the second row is 9.000.
  • The mean value in the third row is 10.667.

And so on.

Example 2: Find Sum Along Different Axes

We can use axis=0 to find the sum of specific columns in the DataFrame:

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

points     162
assists     62
dtype: int64

We can also use axis=1 to find the sum of each row in the 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

Example 3: Find Max Along Different Axes

We can use axis=0 to find the max value of specific columns in the DataFrame:

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

points      29
assists     12
rebounds    12
dtype: int64

We can also use axis=1 to find the max value of each row in the 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

From the output we can see:

  • The max value in the first row is 25.
  • The max value in the second row is 12.
  • The max value in the third row is 15.

And so on.

Additional Resources

The following tutorials explain how to perform other common operations in pandas:

How to Calculate the Mean of Columns in Pandas
How to Calculate the Sum of Columns in Pandas
How to Find the Max Value of Columns in Pandas

Leave a Reply

Your email address will not be published.