Objects passed to the pandas.apply() are Series objects whose index is either the DataFrame’s index (axis=0) or the DataFrame’s columns (axis=1). By default (result_type=None), the final return type is inferred from the return type of the applied function. Otherwise, it depends on the result_type argument.
Syntax:
s.apply(func, convert_dtype=True, args=())
Creating Dataframe to return multiple columns using apply() method
Python3
import pandas
import numpy
dataFrame = pandas.DataFrame
([[ 4 , 9 ], ] * 3 , columns = [ 'A' , 'B' ])
display(dataFrame)
|
Output:
Below are some programs which depict the use of pandas.DataFrame.apply()
Example 1:
Using a Numpy universal function (in this case the same as numpy.sqrt()).
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply (numpy.sqrt)
|
Output:
Returning multiple columns from Pandas apply()
A B
0 2.0 3.0
1 2.0 3.0
2 2.0 3.0
Example 2:
Using a reducing function on columns.
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply (numpy. sum , axis = 0 )
|
Output:
Returning multiple columns from Pandas apply()
A 12
B 27
dtype: int64
Example 3:
Using a reducing function on rows.
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply (numpy. sum , axis = 1 )
|
Output:
Returning multiple columns from Pandas apply()
0 13
1 13
2 13
dtype: int64
Example 4:
Returning a list-like will result in a Series using the lambda function.
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply ( lambda x: [ 1 , 2 ], axis = 1 )
|
Output:
Returning multiple columns from Pandas apply()
0 [1, 2]
1 [1, 2]
2 [1, 2]
dtype: object
Example 5:
Passing result_type=’expand’ will expand list-like results to columns of a Dataframe.
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply ( lambda x: [ 1 , 2 ], axis = 1 , result_type = 'expand' )
|
Output:
Returning multiple columns from Pandas apply()
0 1
0 1 2
1 1 2
2 1 2
Example 6:
Returning a Series inside the function is similar to passing result_type=’expand’. The resulting column names will be the Series index.
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply ( lambda x: pandas.Series(
[ 1 , 2 ], index = [ 'foo' , 'bar' ]), axis = 1 )
|
Output:
Returning multiple columns from Pandas apply()
foo bar
0 1 2
1 1 2
2 1 2
Example 7:
Passing result_type=’broadcast’ will ensure the same shape result, whether list-like or scalar is returned by the function, and broadcasted along the axis. The resulting column names will be the originals.
Python3
print ( 'Returning multiple columns from Pandas apply()' )
dataFrame. apply ( lambda x: [ 1 , 2 ], axis = 1 , result_type = 'broadcast' )
|
Output:
Returning multiple columns from Pandas apply()
A B
0 1 2
1 1 2
2 1 2
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
08 Sep, 2022
Like Article
Save Article