2017-09-14 50 views
0

这是第一次发布一个问题,所以我会尝试举一些例子,但我可能不会完全意识到最好的方式来做到这一点。没有匹配大小的方法(:: DataFrames.GroupedDataFrame)

我使用groupby()函数根据池变量划分DataFrame。我的意图是从子数据框创建一个新的分组,其中用groupby()分割的行变成2个单独的列。例如在DataFrame A中我有:meanX和:Treatment,在数据框B中我想要:meanX_Treatment1和:meanX_Treatment2。

现在我找到了一个方法来使用join()来做这个pourpose,但是有很多其他的变量来阻塞我需要多次重复这个操作,我需要知道groupby()的初始调用创建了多少个SubDataFrames。结果是可变的,所以我不能简单地阅读它,我需要将它存储在一个变量,这就是为什么我试图大小(:: DataFrames.GroupedDataFrame)。

有没有解决方案?

+0

是'length(grouped_df)'你在找什么? –

+0

对于这种用例,我还建议查看Query.jl框架。 http://www.david-anthoff.com/Query.jl/stable/ –

+0

是的,谢谢!我真的在DataFrames的维基看,我无法找到如何做到这一点。 – DarioSarra

回答

0

要获取GroupedDataFrame中的组数,请使用length方法。例如:

using DataFrames 

df = DataFrame(x=repeat(1:4,inner=2,outer=2),y='a':'p') 
grouped = groupby(df,:x) 

num_of_groups = length(grouped) # returns 4 

# to do something with each group `for g in grouped ... end` is useful 

正如评论指出的那样,你也可以考虑用Query.jl(见文档在http://www.david-anthoff.com/Query.jl/stable)进行数据处理沿问题的线路。

+0

好吧,'Query'不是'DataFrames'的替代品,因为它似乎暗示了答案,但更高级别的查询API(PS:链接已损坏) – Antonello

+0

@Antonello谢谢。固定答案。 –

相关问题