Open In App

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

Last Updated : 04 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
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



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads