Python Pandas Series clip() Function

Pandas Series clip() Function:

The clip() function of the Pandas Series trims values at the input thresholds. It assigns non-boundary values to boundary values. Thresholds can be single values or arrays, and in the latter case, clipping is done element-by-element along the given axis.

Syntax:

Series.clip(lower=None, upper=None, axis=None, inplace=False)

Parameters

lower: This is optional. It indicates the minimum threshold value as a float or array-like. All values that are less than(below) this threshold will be set to it. The value will not be clipped if a threshold (for example- NA) is missing. None is the default.

upper: This is optional. It indicates the maximum threshold value as a float or array-like. All values that are greater than(above) this threshold will be set to it. The value will not be clipped if a threshold (for example- NA) is missing. None is the default.

axis: This is optional. It is the int or str axis name to align the object with lower and upper along the specified axis. None is the default.

inplace: This is optional. If set to True, the operation is done in place on the data. False by default.

Return Value:

The same type as calling object with the values outside the clip boundaries replaced or None if inplace=True is returned.

Python Pandas Series clip() Function

Example1

Approach:

  • Import pandas module using the import keyword.
  • Pass some random list as an argument to the Series() function of the pandas module to create a series.
  • Store it in a variable.
  • Print the above-given series.
  • Apply clip() function on the given series to clip the values based on the given lower and upper threshold values and print the result.
  • Here the lower threshold is 2 and the upper threshold = 12.
  • The Exit of the Program.

Below is the implementation:

# Import pandas module using the import keyword.
import pandas as pd
# Pass some random list as an argument to the Series() function
# of the pandas module to create a series.
# Store it in a variable.
gvn_series = pd.Series([-2, 4, -10, 5, 15, 20, 6, -3])
# Print the above given series
print("The given series is:")
print(gvn_series)
print()
# Apply clip() function on the given series to clip the values based on the
# given lower and upper threshold values and print the result.
# Here the lower threshold is 2 and upper threshold = 12
print("The given series after clipping:")
print(gvn_series.clip(2, 12))

Output:

The given series is:
0    -2
1     4
2   -10
3     5
4    15
5    20
6     6
7    -3
dtype: int64

The given series after clipping:
0     2
1     4
2     2
3     5
4    12
5    12
6     6
7     2
dtype: int64

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 clip() function on the student_marks column of the dataframe to clip the values based on the given lower and upper threshold values and print the result.
  • Here the lower threshold = 30 and upper threshold = 85.
  • 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": [80, 35, 25, 90]},
  index= ["virat", "nick" , "jessy", "sindhu"]
)
# Print the given dataframe
print("The given Dataframe:")
print(data_frme)
print()
# Apply clip() function on the student_marks column of the dataframe
# to clip the values based on the given lower and upper threshold values 
# and print the result.
# Here the lower threshold = 30 and upper threshold = 85
print("The dataframe after clipping the student_marks column:")
print(data_frme['student_marks'].clip(30, 85))

Output:

The given Dataframe:
        student_rollno  student_marks
virat                1             80
nick                 2             35
jessy                3             25
sindhu               4             90

The dataframe after clipping the student_marks column:
virat     80
nick      35
jessy     30
sindhu    85
Name: student_marks, dtype: int64