当前位置: 首页 > 编程笔记 >

将函数应用于Python中Pandas DataFrame中的每一行

符棋
2023-03-14
本文向大家介绍将函数应用于Python中Pandas DataFrame中的每一行,包括了将函数应用于Python中Pandas DataFrame中的每一行的使用技巧和注意事项,需要的朋友参考一下

在本教程中,我们将学习列表的最常用方法,即append()extend()。让我们一一看。

应用()

它用于将函数应用于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()方法为所有行应用一个函数。

 类似资料:
  • 问题内容: 可以说我有一个这样的列表: 我有一个函数,假设我想将该函数应用于该函数的每个子列表,可以计算出有关两个列表的一些分数。如何将此功能应用于的每个列表并在新列表中返回每个分数,如下所示: 我尝试使用以下功能: 问题答案: 您可以使用内置函数来执行此操作。 因此,如果您要应用的函数是,则可以执行以下操作: 在中,上面返回了一个地图迭代器,因此您需要一个显式调用: 如果您要为此编写一些必须在P

  • 问题内容: 如何将函数应用于变量输入列表?例如,函数返回真值,但不返回函数的实际输出。 预期的输出是: 我知道是内置的。这只是一个例子。 问题答案: 我认为您的意思是使用而不是: 更简单的是,您可以使用而不是从中导入(感谢@alecxe): 在Python 2.x中,通过将给定函数应用于列表中的每个元素来构造新列表。通过限制使用给定函数求值的元素来构造新列表。 在Python 3.x中,和构建迭代

  • 我需要对R中数据帧每行的数据进行卡方检验。到目前为止,我有一个函数可以创建矩阵并对矩阵进行检验。当我手动将数据输入函数时,这工作得很好。 但是,我想做的是将此函数应用于数据框的每一行,使得 var1 是行 x 列 1,var2 是行 x 列 2,var3 是行 x 列 3,var4 是行 x 列 4。 我已经尝试了几种不同的应用程序()函数的方法,但是我找不到一种允许我按照我想要的方式从行中获取数

  • 问题内容: 我想出于调试目的,打印出与python方法中执行的每一行有关的内容。 例如,如果该行中有一些赋值,我想打印为该变量分配的值,如果有一个函数调用,我想打印出该函数返回的值,等等。 因此,例如,如果我要使用装饰器,则将其应用于函数/方法,例如: 调用功能测试时,应打印以下内容: 有什么办法可以做到这一点?更重要的是,我想知道我是否可以编写可以逐行通过其他代码的代码,检查它是哪种类型的指令,

  • 例如。 现在我正在使用更多,我想知道是否有一种整洁/自然的方法来做这件事?因为这不是我想要的:

  • 问题内容: 我想将带有参数的函数应用于python pandas中的系列: 问题答案: 位置参数添加到系列元素之后。 对于旧版本的pandas: 文档对此进行了清楚的说明。apply方法接受应具有单个参数的python函数。如果要传递更多参数,则应按照在其评论中的建议使用。 一个例子: 你也可以使用传递关键字参数。 另一种方法是创建一个lambda: 但我认为使用partial会更好。