在本教程中,我们将学习列表的最常用方法,即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会更好。