Примените функцию к каждой строке или столбцу в Dataframe с помощью pandas.apply ()

Опубликовано: 27 Марта, 2022

There are different ways to apply a function to each row or column in DataFrame. We will learn about various ways in this post. Let’s create a small dataframe first and see that. 

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,10,11,12),
          (13,14,15,16)
         ]
   
# Create a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
   
# Output
df

Выход :

Метод 1. Применение лямбда-функции к каждой строке / столбцу.
Пример 1: для столбца

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,10,11,12),
          (13,14,15,16)
         ]
  
# Create a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a lambda function to each 
# column which will add 10 to the value
new_df = df.apply(lambda x : x + 10)
  
# Output
new_df

Выход :

Example 2: For 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a lambda function to each 
# row which will add 5 to the value
new_df = df.apply(lambda x: x + 5, axis = 1)
  
# Output
new_df

Выход :

Метод 2: Применение пользовательской функции к каждой строке / столбцу
Пример 1: для столбца

Python3

# function to returns x*x
def squareData(x):
    return x * x
  
# import pandas and numpy packages
import pandas as pd
import numpy as np
  
# list of tuples
matrix = [(1,2,3,4),
          (5,6,7,8,),
          (9,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a user defined function to 
# each column that will square the given
# value
new_df = df.apply(squareData)
  
# Output
new_df

Выход :

Example 2: For Row 

Python3

# function to returns x*X
def squareData(x):
    return x * x
  
# 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a user defined function 
# to each row that will square the given value
new_df = df.apply(squareData, axis = 1)
  
# Output
new_df

Выход :

В приведенных выше примерах мы видели, как пользовательская функция применяется к каждой строке и столбцу. Мы также можем применять пользовательские функции, которые принимают два аргумента.

Example 1: For Column 

Python3

# function to returns x+y
def addData(x, y):
    return x + y
  
# 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Appling a user defined function to each 
# column which will add value in each
# column by given number
new_df = df.apply(addData, args = [1])
  
# Output
print(new_df)

Выход :

Example 2: For Row 

Python3

# function to returns x+y
def addData(x, y):
    return x + y
  
# 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Appling a user defined function to each 
# row which will add value in each row by
# given number
new_df = df.apply(addData, axis = 1,
                    args = [3])
  
# Output
new_df

Выход :

Method 3: Applying numpy function to each row/column 
Example 1: For 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a numpy function to each 
# column by squaring each value 
new_df = df.apply(np.square)
  
# Output
new_df

Выход :

Example 2: For 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Apply a numpy function to each row
# to find square root of each value 
new_df = df.apply(np.sqrt, axis = 1)
  
# Output
new_df

Выход :

Метод 4: применение функции сокращения к каждой строке / столбцу
Функция уменьшения принимает строку или столбец как серию и возвращает либо серию того же размера, что и входная строка / столбец, либо она вернет одну переменную в зависимости от используемой функции.

Example 1: For 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a numpy function to get the sum 
# of all values in each column
new_df = df.apply(np.sum)
  
# Output
new_df

Выход :

Example 2: For 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,10,11,12),
          (13,14,15,16)
         ]
  
# Creating a Dataframe object
df = pd.DataFrame(matrix, columns = list("abcd"))
  
# Applying a numpy function to get t
# he sum of all values in each row
new_df = df.apply(np.sum, axis = 1)
  
# Output
new_df

Выход :

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.