📜  使用 pandas.apply() 将函数应用于 Dataframe 中的每一行或每一列

📅  最后修改于: 2022-05-13 01:55:45.038000             🧑  作者: Mango

使用 pandas.apply() 将函数应用于 Dataframe 中的每一行或每一列

有多种方法可以将函数应用于 DataFrame 中的每一行或每一列。我们将在这篇文章中了解各种方法。让我们先创建一个小数据框,然后看看。

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


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


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


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


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


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'))
 
# Applying 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)


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'))
 
# Applying 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


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


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


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


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


输出 :

数据框

方法一:对每一行/列应用 lambda函数。
示例 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

输出 :

数据框应用功能-1

示例 2:对于行

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

方法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


输出 :

数据框应用函数 3

示例 2:对于行

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


输出 :

数据框应用功能 4

在上面的示例中,我们看到了如何将用户定义的函数应用于每一行和每一列。我们还可以应用带有两个参数的用户定义函数。

示例 1:对于列

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'))
 
# Applying 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)

输出:

数据框应用功能

示例 2:对于行

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'))
 
# Applying 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


输出 :

数据框应用功能

方法3:对每一行/列应用numpy函数
示例 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)
         ]
 
# 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


输出 :

数据框应用函数 5

示例 2:对于行

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:对每一行/列应用归约函数
Reducing函数将行或列作为序列,并返回与输入行/列相同大小的序列,或者根据我们使用的函数返回单个变量。

示例 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)
         ]
 
# 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


输出 :

数据框应用功能 7

示例 2:对于行

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


输出 :

数据框应用函数 8