我希望在 go 中使用 Gota 的酷数据框获取数据框的列总和。
我从这里看到有一种方法可以将函数应用于看起来不错的系列,那就是:
mean := func(s series.Series) series.Series {
floats := s.Float()
sum := 0.0
for _, f := range floats {
sum += f
}
return series.Floats(sum / float64(len(floats)))
}
df.Cbind(mean)
df.Rbind(mean)
例如,只需删除除法即可获得求和函数而不是平均值。也就是说,如果我只想对 1 列求和,我是否坚持编写自己的简单求和函数,或者是否有像 R 那样更惯用和内置的东西
sum(df[,c("mycol")])
?
我目前正在与:
sum := func(s series.Series) series.Series {
floats := s.Float()
sum := 0.0
for _, f := range floats {
sum += f
}
return series.Floats(sum)
}
df.Select([]string{"mycol"})).CBind(sum)
在我子集到仅感兴趣的列之后的 df 变为:
[31x1] DataFrame
mycol
0: 8.300000
1: 8.300000
2: 16.750000
3: 9.030000
...
<float>
我得到类似的东西:
cannot use sum (type func(series.Series) series.Series) as type dataframe.DataFrame in argument to df.Select([]string literal).CBind
更新
啊,部分解决方案是文档使用 Cbind/Rbind 我认为 Capply/Rapply 的意思,因为这些都记录在这里。也就是说,成语问题在于,如果我缺少内置插件,那就太好了。