Pandas Series skew() Function:
Pandas skew: The skew() function of the Pandas Series returns the unbiased skew of the values along the chosen axis.
Skewness is asymmetry in a statistical distribution in which the curve seems distorted or skewed to the left or right.
Syntax:
Series.skew(axis=None, skipna=None, level=None, numeric_only=None)
Parameters
axis: This is optional. It indicates 0 or ‘index’. This is the axis on which the function will be applied.
skipna: This is optional. When computing the result, specify True to exclude NA/null values. The default value is True.
level: This is optional. It indicates the level (int or str). If the axis is a MultiIndex (hierarchical), count along a particular level, collapsing into a scalar. The level name is specified by str.
numeric_only: This is optional. Pass True to include just float, int, or boolean data. False by default
Return Value:
If a level is given, it returns a scalar or a series. The unbiased skew along the given axis is returned by the skew() function of the Pandas Series.
Pandas Series skew() Function in Python
Example1
Approach:
- Import pandas module using the import keyword.
- Import numpy module using the import keyword.
- Give the category(level) values as arguments list to from_arrays() functions
- Pass some random list, index values from the above and name as Numbers as the arguments to the Series() function of the pandas module to create a series.
- Store it in a variable.
- Print the above-given series
- Printing the skew of all elements in the given series using the skew() function
- Printing the skew of each level of the series using level=’DataType’
- Printing the skew of each level of the series using level=0.
-
The Exit of the Program.
Below is the implementation:
# Import pandas module using the import keyword. import pandas as pd # Import numpy module using the import keyword. import numpy as np # Give the category(level) values as arguments list to from_arrays() functions gvn_indx = pd.MultiIndex.from_arrays([ ['positive', 'negative', 'positive', 'positive', 'negative', 'negative']], names=['DataType']) # Pass some random list, index values from the above and name as Numbers # as the arguments to the Series() function of the pandas module to create a series. # Store it in a variable. gvn_series = pd.Series([2, 3, 4, 5, 1, 2], name='Numbers', index=gvn_indx) # Print the above given series print("The given series is:") print(gvn_series) print() # Printing the skew of all elements in the given series # using the skew() function print("Skew of all elements in the given series:") print(gvn_series.skew()) print() # Printing the skew of each level of the series using level='DataType' print("Skew of all level values using level='DataType':") print(gvn_series.skew(level='DataType')) print() # Printing the skew of each level of the series using level=0 print("Skew of all level values using level=0:") print(gvn_series.skew(level=0))
Output:
The given series is: DataType positive 2 negative 3 positive 4 positive 5 negative 1 negative 2 Name: Numbers, dtype: int64 Skew of all elements in the given series: 0.4180715202995426 Skew of all level values using level='DataType': DataType positive -0.93522 negative 0.00000 Name: Numbers, dtype: float64 Skew of all level values using level=0: DataType positive -0.93522 negative 0.00000 Name: Numbers, dtype: float64
Example2
Approach:
- Import pandas module using the import keyword.
- Pass some random key-value pair(dictionary), index list as arguments to the DataFrame() function of the pandas module to create a dataframe.
- Store it in a variable.
- Print the given dataframe.
- Apply skew() function on the student_marks column of the dataframe to get the unbiased skew of all the values of the student_marks column and print the result.
-
The Exit of the Program.
Below is the implementation:
# Import pandas module using the import keyword. import pandas as pd # Pass some random key-value pair(dictionary), index list as arguments to the # DataFrame() function of the pandas module to create a dataframe # Store it in a variable. data_frme = pd.DataFrame({ "student_rollno": [1, 2, 3, 4], "student_marks": [75, 79, 87, 89]}, index= ["virat", "nick" , "jessy", "sindhu"] ) # Print the given dataframe print("The given Dataframe:") print(data_frme) print() # Apply skew() function on the student_marks column of the dataframe to # get the unbiased skew of all the values of the student_marks # column and print the result. print("The unbiased skew of student_marks column of the dataframe:") print(data_frme["student_marks"].skew())
Output:
The given Dataframe: student_rollno student_marks virat 1 75 nick 2 79 jessy 3 87 sindhu 4 89 The unbiased skew of student_marks column of the dataframe: -0.228727758587297