2015-04-23 18 views
3

我是新來的朱莉婭,並有一個簡單的問題。我有一個具有以下結構的csv文件:[Category,Name,Count]。我有兩件事我想創造。朱莉婭groupBy名稱和總結計數

1,我想在julia中創建一個函數,其中groupBy類別並將Counts(名稱被忽略)加起來。因此輸出是[名稱,計數]。然後,我將通過設置x = Name和y = Count來生成條形圖

2,我想爲每個類別生成多個圖,每個名稱的計數在單獨的條形圖上繪製。所以迭代繪圖過程?

我想我已經有了陰謀詭計,但我不確定如何做groupBy過程。任何幫助/重新指導教程將不勝感激。

我的數據的樣本:

(net_worth,khan,14) 
(net_worth,kevin,15) 
(net_worth,bill,16) 

我目前工作的功能:

function wordcount(text,opinion,number) 
words= text 
counts= Dict() 
    for w = words 
    counts[w]= number 
    end 
return counts 
end 

function wcreduce(wcs) 
counts=Dict() 
    for c in wcs, (k,v) in c 
    counts[k] = get(counts,k,0)+v 
    end 
return counts 
end 

我正在尋找像reduceByKey或GroupByKey功能我猜。

+0

我已經用我的數據和我當前的失敗代碼更新了這個問題 – GameOfThrows

+3

看看[DataFrames.jl](https://github.com/JuliaStats/DataFramesMeta.jl)及其一些功能。我相信有一個內置的數據框對象的按組進行聚合。 –

回答

4

所以我解決了這個由上DataFrames功能使用朱莉婭,

數據CSV第一負載使用:

data = readtable("iris.csv") 

現在,它由函數:

function trendingkeys(data::DataFrame,trends::Symbol,funcadd::Function) 
    by(data, :trends, funcadd -> sum(funcadd[:counts])) 
end 

我必須說。 DataFrame非常聰明。

+2

我很高興你能回答你的問題!我建議接受這個答案。 –

+0

感謝您的幫助! – GameOfThrows