python中是否有apply
的实现?有人可以用简单的函数给出一个例子吗?
我已经尝试过它会抛出错误
dfsub.apply(dfsub,function(x){sum(x))
其中dfsub
是一个数据框,有两列a和c,它有整数值,我想知道每一行的总和?
答案 0 :(得分:4)
只需通过sum
功能:
>>> 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
答案 1 :(得分:1)
您似乎尝试使用Javascript语法定义函数" in-line":
dfsub.apply(function(x){sum(x)})
(注意,由于我们正在调用方法,dfsub
已经隐式传递。)
即使在Python中有效,也必须明确return
值。但是我们没有带括号的内联函数。相反,我们有lambda
s:
dfsub.apply(lambda x: sum(x))
这是表达式,这就是没有return
的原因。
那就是说,在目前的情况下,没有必要这样做。 sum
已经成为我们需要通过的事情,如@fattru的回答所示。
答案 2 :(得分:0)
不完全确定apply
应该做什么,但我认为您正在寻找map
功能。
In [1]: dfsub = [(1, 2), (3, 4), (5, 6)]
In [2]: map(sum, dfsub)
Out[2]: [3, 7, 11]