Julia按名称分组并汇总计数

5
我刚开始学习Julia,有一个简单的问题。我有一个csv文件,结构如下:[类别,名称,计数]。我想要创建两个东西。
1、我想在Julia中创建一个函数,按类别分组并累加计数(名称被忽略)。输出结果为[名称,计数]。然后我将通过设置x=名称和y=计数生成条形图。
2、我想为每个类别生成多个图表,其中每个名称的计数在单独的条形图上绘制。这是一个迭代的绘图过程吗?
我认为我已经掌握了绘图的方法,但不确定如何进行按组处理。任何帮助/重定向到教程将不胜感激。
我的数据样本:
(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的函数。

我已经更新了问题,附上了我的数据和当前失败的代码。 - GameOfThrows
3
请查看 DataFrames.jl 以及其部分功能。我相信它内置了对数据框对象按组进行聚合的功能。 - Alex A.
1个回答

6

我通过在DataFrames上使用Julia by函数来解决了这个问题。

首先使用以下命令加载数据csv文件:

data = readtable("iris.csv")

现在这是函数 by:
function trendingkeys(data::DataFrame,trends::Symbol,funcadd::Function)
  by(data, :trends, funcadd -> sum(funcadd[:counts]))
end

我必须说,DataFrame非常智能。


2
很高兴你能解决问题!我建议接受这个答案。 - Alex A.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接