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

Julia:为DataFrame的y列中的每个唯一值创建x列的摘要值,dataframe,julia,Dataframe,Julia,对于y列中的每个唯一值,我想对我的DataFrame的x列应用一些函数,如均值和方差。我可以想象建立一个循环,手动将数据帧子集,以完成我的目标,但我试图不为可能是一个共同特性的东西重新发明轮子 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 = mea

对于
y
列中的每个唯一值,我想对我的
DataFrame
x列应用一些函数,如均值和方差。我可以想象建立一个循环,手动将
数据帧子集
,以完成我的目标,但我试图不为可能是一个共同特性的东西重新发明轮子

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])

你说得对,这很普遍。请查看文档中的章节。这里有几种方法:您可以使用更通用的
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  │
⋮

groupby
是你的朋友。查看在线文档中的示例,在REPL中键入
?groupby
(特别是使用
合并
)可能重复的