Dataframe Julia数据帧唯一行

Dataframe Julia数据帧唯一行,dataframe,julia,unique,rows,Dataframe,Julia,Unique,Rows,在DF中,我有两个列(我们称它们为A和B),其中A有重复,都是分类变量。我试图只显示唯一的A行及其对应的B值,我如何才能做到这一点 当B是一个连续变量时,我可以使用以下方法: by(ptable, [:A], df -> mean(df[:B])) 您可以获得如下所示的预期结果: by(df, :A, x -> [x.B]) 现在,您的数据帧将有两列:A和:x1,列:x1将保存列:B的所有值,对应于:A的唯一值(因此列:x1将是向量向量) 编辑:从DataFrames.jl 0.

在DF中,我有两个列(我们称它们为A和B),其中A有重复,都是分类变量。我试图只显示唯一的A行及其对应的B值,我如何才能做到这一点

当B是一个连续变量时,我可以使用以下方法:

by(ptable, [:A], df -> mean(df[:B]))

您可以获得如下所示的预期结果:

by(df, :A, x -> [x.B])
现在,您的
数据帧将有两列
:A
:x1
,列
:x1
将保存列
:B
的所有值,对应于
:A
的唯一值(因此列
:x1
将是向量向量)

编辑:从DataFrames.jl 0.22开始,使用以下语法:

combine(groupby(df, :A), :B => Ref => :B)
这对我有用


df[!ununique(df[:,[:A]],[:A,:B]]
嘿,凯文,欢迎来到StackOverflow!一般来说,最好展示您所做的尝试,并提供一个每个人都可以复制和粘贴的最小示例。当我运行您编写的行时,我遇到了一个错误:SubDataFrame没有字段B。。你怎么认为?谢谢,您可能使用的是Julia 0.6,而不是Julia 0.7或1.0。如果是这样,请使用
x[:B]
它是等效的。Julia 0.7中引入了点表示法。为了清楚起见,Julia 0.6中的整行应该是
by(df,:A,x->[x[:B]])
。作为参考,
by
已被弃用,取而代之的是
combine(groupby(…),…)
。但是最好使用
unique(df,:A)
。实际上它完全改变了(我相信有更好的方法)。我已编辑了答案。您可以将其缩短为
unique(df,:A)
,这与您的答案相同。但是,这并不能产生您想要编写的内容,因为每个
:A
列的唯一值只有一个
:B
列,并且在
数据帧中,对于相同的
:A
值,可能会有不同的
:B
值。我的解决方案列出了与单个
:a
值相对应的
:B
的所有值。所以你选择什么取决于你想要什么。