Search code examples
pythonpandasdataframe

What does axis in pandas mean?


Here is my code to generate a dataframe:

import pandas as pd
import numpy as np

dff = pd.DataFrame(np.random.randn(1, 2), columns=list('AB'))

then I got the dataframe:

          A        B
0  0.626386  1.52325

When I type the command dff.mean(axis=1), I get:

0    1.074821
dtype: float64

According to the reference of pandas, axis=1 stands for columns and I expect the result of the command to be

A    0.626386
B    1.523255
dtype: float64

So what does axis in pandas mean?


Solution

  • It specifies the axis along which the means are computed. By default axis=0. This is consistent with the numpy.mean usage when axis is specified explicitly (in numpy.mean, axis==None by default, which computes the mean value over the flattened array) , in which axis=0 along the rows (namely, index in pandas), and axis=1 along the columns. For added clarity, one may choose to specify axis='index' (instead of axis=0) or axis='columns' (instead of axis=1).

              A        B
    0  0.626386  1.52325  → → axis=1 → →
              ↓        ↓
              ↓ axis=0 ↓
              ↓        ↓