Python Pandas Series transform() Function

Pandas Series transform() Function:

The transform() function of Pandas Series invokes func on self to generate a Series with transformed data.

Syntax:

Series.transform(func, axis=0)

Parameters

func: This is required. It Indicates the function that will be used to transform the data. If a function, must either work when passed a Series or when passed to Series.apply. When func has both list-like and dict-like behavior, the dict-like behavior takes precedence. The following are acceptable combinations.

  • function
  • string function name
  • list of functions and/or function names, e.g. [np.exp, ‘sqrt’]
  • dictionary of axis labels -> functions, function names, or list of such.

axis: This is optional. It indicates a value of 0 or ‘index’. This is an axis on which the function is applied.

Return Value:

A Series with transformed values of the same length as self is returned by the transform() function of Pandas Series.

Note: If the returned Series is not the same length as self, ValueError is returned.

Pandas Series transform() Function in Python

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
  • Pass some random lambda function to the transform() function, apply it on the given series to get the Series with transformed data and print the result.
  • Here the lambda function adds 5 to each element of the series.
  • 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([10, 5, 2, 4])
# Print the above given series
print("The given series is:")
print(gvn_series)
print()
# Pass some random lambda function to the transform() function,
# apply it on the given series to get the Series with transformed data
# and print the result.
# Here the lambda function adds 5 to each element of the series.
print("The given Series with transformed data:")
print(gvn_series.transform(lambda gvn_series: gvn_series+5))

Output:

The given series is:
0    10
1     5
2     2
3     4
dtype: int64

The given Series with transformed data:
0    15
1    10
2     7
3     9
dtype: int64

Example2

A Series can be subjected to multiple operations at the same time. Here, two operations: ‘sqrt’ (square root) and ‘cbrt’ (cube root) are applied at the same time, and each produces a Series of the same length.

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.
  • Pass some random list of operations to the transform() function, apply it on the given series to get the Series with transformed data, and print the result.
  • Here the squareroot, cuberoot operations are performed on each element of the series.
  • 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([10, 125, 16, 4])
# Print the above given series
print("The given series is:")
print(gvn_series)
print()
# Pass some random list of operations to the transform() function,
# apply it on the given series to get the Series with transformed data
# and print the result.
# Here the squareroot, cuberoot operations are performed on each element of the series.
print("The squareroot, cuberoot values of each element of the series:")
print(gvn_series.transform(['sqrt', 'cbrt']))

Output:

The given series is:
0     10
1    125
2     16
3      4
dtype: int64

The squareroot, cuberoot values of each element of the series:
        sqrt      cbrt
0   3.162278  2.154435
1  11.180340  5.000000
2   4.000000  2.519842
3   2.000000  1.587401

Example3

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 transform() function on the student_marks column of the dataframe by passing ‘sqrt’ as an argument to it to get the squareroot 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": [64, 45, 25, 90]},
  index= ["virat", "nick" , "jessy", "sindhu"]
)
# Print the given dataframe
print("The given Dataframe:")
print(data_frme)
print()
# Apply transform() function on the student_marks column of the dataframe 
# by passing 'sqrt' as an argument to it to get the squareroot of all the values
# of the student_marks column and print the result.
print("The squareroot of all the values of the student_marks column of the dataframe:")
print(data_frme['student_marks'].transform('sqrt'))

Output:

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

The squareroot of all the values of the student_marks column of the dataframe:
virat     8.000000
nick      6.708204
jessy     5.000000
sindhu    9.486833
Name: student_marks, dtype: float64