在 Python 中使用 Pandas DataFrame 对每一行应用函数
在本教程中,我们将学习 **列表** 最常用的方法,即 **append()** 和 **extend()**。让我们逐一了解它们。
apply()
它用于将函数应用于 DataFrame 的每一行。例如,如果我们想将每一行的所有数字相乘并将其作为新列添加,那么 apply() 方法非常有用。让我们看看实现它的不同方法。
示例
# importing the pandas package import pandas as pd # function to multiply def multiply(x, y): return x * y # creating a dictionary for DataFrame data = { 'Maths': [10, 34, 53], 'Programming': [23, 12, 43] } # creating DataFrame using the data data_frame = pd.DataFrame(data) # displaying DataFrame print('--------------------Before------------------') print(data_frame) print() # applying the function multiply data_frame['Multiply'] = data_frame.apply(lambda row : multiply(row['Maths'], row[' Programming']), axis = 1) # displaying DataFrame print('--------------------After------------------') print(data_frame)
输出
如果运行上述程序,您将获得以下结果。
--------------------Before------------------ Maths Programming 0 10 23 1 34 12 2 53 43 --------------------After------------------ Maths Programming Multiply 0 10 23 230 1 34 12 408 2 53 43 2279
示例
我们还可以使用预定义函数,如 **sum,pow** 等。
# importing the pandas package import pandas as pd # creating a dictionary for DataFrame data = { 'Maths': [10, 34, 53], 'Programming': [23, 12, 43] } # creating DataFrame using the data data_frame = pd.DataFrame(data) # displaying DataFrame print('--------------------Before------------------') print(data_frame) print() # applying the function multiply # using built-in sum function data_frame['Multiply'] = data_frame.apply(sum, axis = 1) # displaying DataFrame print('--------------------After------------------') print(data_frame)
输出
如果运行上述程序,您将获得以下结果。
--------------------Before------------------ Maths Programming 0 10 23 1 34 12 2 53 43 --------------------After------------------ Maths Programming Multiply 0 10 23 33 1 34 12 46 2 53 43 96
示例
我们还可以使用 numpy 模块中的函数。让我们看一个例子。
# importing the pandas package import pandas as pd # importing numpy module for functions import numpy as np # creating a dictionary for DataFrame data = { 'Maths': [10, 34, 53], 'Programming': [23, 12, 43] } # creating DataFrame using the data data_frame = pd.DataFrame(data) # displaying DataFrame print('--------------------Before------------------') print(data_frame) print() # applying the function multiply # using sum function from the numpy module data_frame['Multiply'] = data_frame.apply(np.sum, axis = 1) # displaying DataFrame print('--------------------After------------------') print(data_frame)
输出
如果运行上述程序,您将获得以下结果。
--------------------Before------------------ Maths Programming 0 10 23 1 34 12 2 53 43 --------------------After------------------ Maths Programming Multiply 0 10 23 33 1 34 12 46 2 53 43 96
结论
通过以上方法,我们可以使用 DataFrame 的 **apply()** 方法对所有行应用函数。如果您对本教程有任何疑问,请在评论区提出。
广告