在 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()** 方法对所有行应用函数。如果您对本教程有任何疑问,请在评论区提出。

更新于: 2019年11月1日

1K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告