我想对 DataFrame
的 x
列应用一些函数,例如均值和方差,以获取 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])
最佳答案
你说得对,这很常见。看看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 │
⋮
关于dataframe - Julia:为 DataFrame 的 y 列中的每个唯一值创建 x 列的汇总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43948804/