我想为x
列DataFrame
中的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*`
答案 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 │
⋮