Open In App

Apply a function to single or selected columns or rows in Pandas Dataframe

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

In this article, we will learn different ways to apply a function to single or selected columns or rows in Dataframe. We will use Dataframe/series.apply() method to apply a function.

Apply a function to single row in Pandas Dataframe

Here, we will use different methods to apply a function to single rows by using Pandas dataframe. First lets create a data frame.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns = list('xyz'),
                   index = list('abc'))
 
print(df)


Output:

   x  y  z
a 1 2 3
b 4 5 6
c 7 8 9

Using Dataframe.apply() and lambda function

Pandas.apply() allow the users to pass a function and apply it on every single value row of the Pandas dataframe. Here, we squared the ‘bth‘ row.

Python3




# Apply function numpy.square() to lambda
# whose row index is 'b'
df = df.apply(lambda x: np.square(x) if x.name == 'b' else x,
                axis = 1)
 
# Output
print(df)


Output :

    x   y   z
a 1 2 3
b 16 25 36
c 7 8 9

Using loc[ ] Operator

Pandas DataFrame.loc attribute accesses a group of rows in the given DataFrame to squared the ‘bth‘ row.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply a function to one row 'b'
# and assign it back to the same row
df.loc['b'] = df.loc['b'].apply(np.square)
 
print(df)


Output :

      x   y   z
a 1 2 3
b 16 25 36
c 7 8 9

Using numpy.square() method

This mathematical function helps the user to calculate the square value of each element in the array. Here, we are passing b row to make a square of it.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply a function to one row 'b' and
# assign it back to the same row
df.loc['b'] = np.square(df.loc['b'])
 
# Output
print(df)


Output :

    x   y   z
a 1 2 3
b 16 25 36
c 7 8 9

Apply a function to single column in Pandas Dataframe

Here, we will use different methods to apply a function to single columns by using Pandas Dataframe.

Using Dataframe.apply() and lambda function

Pandas.apply() allow the users to pass a function and apply it on every single value column of the Pandas Dataframe. Here, we squared the ‘zth‘ column.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply function numpy.square() to lambda
# to find the squares of the values of
# column whose column name is 'z'
new_df = df.apply(lambda x: np.square(x) if x.name == 'z' else x)
 
# Output
print(new_df)


Output :

   x  y   z
a 1 2 9
b 4 5 36
c 7 8 81

Using loc[ ] Operator 

Pandas DataFrame.loc attribute access a group of columns in the given DataFrame to square the ‘zth‘ column.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply a function to one column 'z'
# and assign it back to the same column
df['z'] = df['z'].apply(np.square)
 
# Output
print(df)


Output :

   x  y   z
a 1 2 9
b 4 5 36
c 7 8 81

Using numpy.square() method 

This mathematical function helps the user to calculate the square value of each element in the array. Here, we are passing z column to make a square of it.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply a function to one column 'z' and
# assign it back to the same column
df['z'] = np.square(df['z'])
 
# Output
print(df)


Output:

   x  y   z
a 1 2 9
b 4 5 36
c 7 8 81

Apply function to column and row in the Dataframe

Here. we will see how to apply a function to more than one row and column using df.apply() method.

For Column 

Here, we applied the function to the x, and y columns.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply function numpy.square()
# for square the values of
# two columns 'x' and 'y'
new_df = df.apply(lambda x: np.square(x) if x.name in ['x', 'y'] else x)
 
# Output
print(new_df)


Output:

    x   y  z
a 1 4 3
b 16 25 6
c 49 64 9

For Row

Here, we applied the function to the b, and c rows.

Python3




# import pandas and numpy library
import pandas as pd
import numpy as np
 
# List of Tuples
matrix = [(1, 2, 3),
          (4, 5, 6),
          (7, 8, 9)]
 
# Create a DataFrame object
df = pd.DataFrame(matrix, columns=list('xyz'),
                  index=list('abc'))
 
# Apply function numpy.square() to
# square the values of two rows
# 'b' and 'c'
new_df = df.apply(lambda x: np.square(x) if x.name in ['b', 'c'] else x,
                  axis=1)
 
# Output
print(new_df)


Output:

    x   y   z
a 1 2 3
b 16 25 36
c 49 64 81



Last Updated : 04 Sep, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads