让df作为我们来自熊猫的测试数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
'C' : np.random.randn(8),
'D' : np.random.randn(8)})
我现在要做的实际上是按列A
分组,类似于:
那很好。现在,我不想使用sum()
,而是要应用一个自己的函数来高效地总结数据。在
R的等效值为:
require(plyr); require(dplyr)
df = data.frame(A = c('foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'),
B = c('one', 'one', 'two', 'three','two', 'two', 'one', 'three'),
C = rnorm(8),
D = rnorm(8))
例如,此函数名为myfun
:
myfun <- function(x){sum(x**2)}
然后:
df %>%
group_by(A) %>%
summarise(result = myfun(C))
我希望问题足够清楚。非常感谢!在
您可以使用^{} 并将自定义函数放在lambda中,例如
或者您可以单独定义它并将其传递给
^{pr2}$agg
。在还要注意,
agg
接受函数参数的很多东西,因此它相当灵活。From the docs,用于聚集组的arg
函数目前可以是:相关问题 更多 >
编程相关推荐