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

Featured Posts

Leave a Reply

Your email address will not be published. Required fields are marked *