在Python中的 Pandas DataFrame 中应用函数到每一行
在本教程中,我们将学习最常见的 list方法。即, append() 和 extend() 。让我们一一来看看它们。
apply()
它用于在 DataFrame 中的每个行应用一个函数。例如,如果我们想将每个数从各个行相乘并将结果作为新列添加,那么 apply() 方法是非常有用的。让我们看看不同的实现方式。
示例
# 导入pandas包
import pandas as pd
# 定义一个乘法函数
def multiply(x, y):
return x * y
# 创建一个DataFrame的字典
data = {
'Maths': [10, 34, 53],
'Programming': [23, 12, 43]
}
# 使用数据创建DataFrame
data_frame = pd.DataFrame(data)
# 显示DataFrame
print('--------------------Before------------------')
print(data_frame)
print()
# 应用乘法函数
data_frame['Multiply'] = data_frame.apply(lambda row : multiply(row['Maths'], row['Programming']), axis = 1)
# 显示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 等。
# 导入pandas包
import pandas as pd
# 创建一个DataFrame的字典
data = {
'Maths': [10, 34, 53],
'Programming': [23, 12, 43]
}
# 使用数据创建DataFrame
data_frame = pd.DataFrame(data)
# 显示DataFrame
print('--------------------Before------------------')
print(data_frame)
print()
# 应用乘法函数
# 使用内置的sum函数
data_frame['Multiply'] = data_frame.apply(sum, axis = 1)
# 显示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模块中的函数。让我们来看一个例子。
# 导入pandas包
import pandas as pd
# 导入numpy模块中的函数
import numpy as np
# 创建一个DataFrame的字典
data = {
'Maths': [10, 34, 53],
'Programming': [23, 12, 43]
}
# 使用数据创建DataFrame
data_frame = pd.DataFrame(data)
# 显示DataFrame
print('--------------------Before------------------')
print(data_frame)
print()
# 应用乘法函数
# 使用numpy模块的sum函数
data_frame['Multiply'] = data_frame.apply(np.sum, axis = 1)
# 显示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() 方法为所有行应用函数。如果您对本教程有任何疑问,请在评论部分提出。