Julia:为DataFrame的y列中的每个唯一值创建列x的汇总值

时间:2017-05-13 03:05:33

标签: dataframe julia

我想为xDataFrame中的y列添加一些函数,例如均值和方差,以用于DataFrame列中的每个唯一值。我可以想象构建一个循环,手动对using DataFrames mydf = DataFrame(y = [randstring(1) for i in 1:1000], x = rand(1000)) # I could imagine a function that looks like: apply(function = mean, across = mydf[:x], by = mydf[:y]) 进行子集以完成我的结束,但我试图不重新发明轮子,这可能是一个常见的特征。

`dafiti-analytics.40663402.ga_sessions_intraday*`

1 个答案:

答案 0 :(得分:2)

你是对的,这很常见。请查看文档中的split-apply-combine章节。这里有几种方法:您可以使用更通用的by函数来准确指定要操作的列,也可以使用方便的aggregate函数自动使用所有其他列明智地命名他们:

julia> aggregate(mydf, :y, mean)
62×2 DataFrames.DataFrame
│ Row │ y   │ x_mean   │
├─────┼─────┼──────────┤
│ 1   │ "0" │ 0.454196 │
│ 2   │ "1" │ 0.541434 │
│ 3   │ "2" │ 0.36734  │
⋮