Pandas Tutorial Pandas References

Pandas Series - skew() function



The Pandas Series skew() function returns the unbiased skew over the specified axis. The syntax for using this function is mentioned below:

Syntax

Series.skew(axis=None, skipna=None, 
            level=None, numeric_only=None)

Parameters

axis Optional. Specify {0 or 'index'}. Specify axis for the function to be applied on.
skipna Optional. Specify True to exclude NA/null values when computing the result. Default is True.
level Optional. Specify level (int or str). If the axis is a MultiIndex (hierarchical), count along a particular level, collapsing into a scalar. A str specifies the level name.
numeric_only Optional. Specify True to include only float, int or boolean data. Default: False

Return Value

Returns scalar or Series if a level is specified.

Example: using skew() on a Series

In the example below, the skew() function is used to get the skew of a given series.

import pandas as pd
import numpy as np

idx = pd.MultiIndex.from_arrays([
    ['rand', 'rand', 'rand', 'rand', 
     'randn', 'randn', 'randn', 'randn']],
    names=['DataType'])

x = pd.Series(np.append(np.random.rand(4), 
              np.random.randn(4)), index=idx)

print("The Series contains:")
print(x)

#skew of all values in the series
print("\nx.skew() returns:")
print(x.skew())

#skew of all values within given level
print("\nx.skew(level='DataType') returns:")
print(x.skew(level='DataType'))
print("\nx.skew(level=0) returns:")
print(x.skew(level=0))

The output of the above code will be:

The Series contains:
DataType
rand        0.241319
rand        0.355236
rand        0.750794
rand        0.194619
randn       0.371207
randn       0.334198
randn       0.770243
randn      -0.320792
dtype: float64

x.skew() returns:
-0.645085449738361

x.skew(level='DataType') returns:
DataType
rand     1.601614
randn   -0.825233
dtype: float64

x.skew(level=0) returns:
DataType
rand     1.601614
randn   -0.825233
dtype: float64

Example: using skew() on selected series in a DataFrame

Similarly, the skew() function can be applied on selected series/column of a given DataFrame. Consider the following example.

import pandas as pd
import numpy as np

df = pd.DataFrame({
  "Bonus": [5, 3, 2, 4],
  "Last Salary": [58, 60, 63, 57],
  "Salary": [60, 62, 65, 59]},
  index= ["John", "Marry", "Sam", "Jo"]
)

print("The DataFrame is:")
print(df)

#skew of all values of 'Salary' series
print("\ndf['Salary'].skew() returns:")
print(df["Salary"].skew())

The output of the above code will be:

The DataFrame is:
       Bonus  Last Salary  Salary
John       5           58      60
Marry      3           60      62
Sam        2           63      65
Jo         4           57      59

df['Salary'].skew() returns:
0.8639187954496622

❮ Pandas Series - Functions

5