python中是否有apply的实现

python中是否有apply的实现,python,python-2.7,Python,Python 2.7,python中是否有apply的实现?有人能举一个简单函数的例子吗 我已经试过了,它会出错 dfsub.apply(dfsub,function(x){sum(x)) 其中dfsub是一个包含两列a和c的数据帧,其中a和c有整数值,我想知道每行的总和?不完全确定应用程序应该做什么,但我认为您正在寻找该函数 In [1]: dfsub = [(1, 2), (3, 4), (5, 6)] In [2]: map(sum, dfsub) Out[2]: [3, 7, 11] 不完全确定apply

python中是否有apply的实现?有人能举一个简单函数的例子吗

我已经试过了,它会出错

dfsub.apply(dfsub,function(x){sum(x))
其中dfsub是一个包含两列a和c的数据帧,其中a和c有整数值,我想知道每行的总和?

不完全确定应用程序应该做什么,但我认为您正在寻找该函数

In [1]: dfsub = [(1, 2), (3, 4), (5, 6)]
In [2]: map(sum, dfsub)
Out[2]: [3, 7, 11]
不完全确定apply应该做什么,但我认为您正在寻找函数

In [1]: dfsub = [(1, 2), (3, 4), (5, 6)]
In [2]: map(sum, dfsub)
Out[2]: [3, 7, 11]
简单传递函数:

>>> import pandas as pd
>>> dfsub = pd.DataFrame({'a': [1,2,3,4], 'c': [4,5,6,7]})
>>> dfsub
   a  c
0  1  4
1  2  5
2  3  6
3  4  7
>>> dfsub.apply(sum)
a    10
c    22

>>> dfsub.apply(sum, axis=1)
0     5
1     7
2     9
3    11
dtype: int64
简单传递函数:

>>> import pandas as pd
>>> dfsub = pd.DataFrame({'a': [1,2,3,4], 'c': [4,5,6,7]})
>>> dfsub
   a  c
0  1  4
1  2  5
2  3  6
3  4  7
>>> dfsub.apply(sum)
a    10
c    22

>>> dfsub.apply(sum, axis=1)
0     5
1     7
2     9
3    11
dtype: int64

您似乎试图使用Javascript语法在线定义函数:

dfsub.apply(function(x){sum(x)})
请注意,由于我们正在调用一个方法,dfsub已经隐式传递

即使这在Python中有效,它也必须显式返回值。但是我们没有带大括号的内联函数。相反,我们有lambdas:

这是一个表达式,这就是为什么没有返回


也就是说,在目前的情况下,没有必要这样做。sum已经是我们需要传递的东西,如@falsetru的回答所示。

您似乎试图使用Javascript语法在线定义函数:

dfsub.apply(function(x){sum(x)})
请注意,由于我们正在调用一个方法,dfsub已经隐式传递

即使这在Python中有效,它也必须显式返回值。但是我们没有带大括号的内联函数。相反,我们有lambdas:

这是一个表达式,这就是为什么没有返回


也就是说,在目前的情况下,没有必要这样做。正如@falsetru的回答所示,sum已经是我们需要通过的东西了。

你试过了吗?否则,你到底希望apply做什么?@tobias_k,OP似乎在使用熊猫。你看。@falsetru你可能是对的,我不太了解熊猫。但在这种情况下,问题的措辞是错误的,因为OP似乎知道应用函数,只是不知道如何使用它。@user3226869,如果您是指pandas DataFrame,请用pandas标记问题。您尝试过吗?否则,你到底希望apply做什么?@tobias_k,OP似乎在使用熊猫。你看。@falsetru你可能是对的,我不太了解熊猫。但在这种情况下,问题的措辞是不恰当的,因为OP似乎知道应用函数,只是不知道如何使用它。@user3226869,如果您是指pandas DataFrame,请用pandas标记问题。应该是dfsub.applysum,axis=1,因为OP要求行sums@JaminSore,我不确定OP到底想要什么。但是增加了一个你建议的。谢谢您的评论。应该是dfsub.applysum,axis=1,因为OP要求行sums@JaminSore,我不确定OP到底想要什么。但是增加了一个你建议的。谢谢你的评论。