2017-09-14 51 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謝謝。固定答案。 –

相關問題