我正在使用Facebook来收集一些关于提到的数据。我正在收集一个月,一个术语(如:香蕉)在一篇文章中提到的次数。所以我现在有数据显示如下:
12, 0
12, 0
11, 1
11, 0
11, 1
10, 0
10, 0
10, 0每一行代表一个员额。我希望合并月份(第一栏)和一个术语被提到的次数(第二栏),因此它看起来如下:
12, 0
11, 2
10, 0我尝试将数据放入一个数组中,如下所示:
[12, 0]
[12, 0]
[11, 1]
[11, 0]
[11, 1]
[10, 0]
[10, 0]
[10, 0]但是无法找到合并和添加列的方法。有这么做的吗?
发布于 2016-01-05 21:10:47
假设您的数据是元组或列表的列表,则可以使用defaultdict并对列表进行迭代,例如:
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for m, c in data:
... d[m] += c
>>> list(d.items())
[(10, 0), (11, 2), (12, 0)]发布于 2016-01-05 21:49:23
我不确定是否有工具可用于根据第一列中的值进行合并,但您可以使用numpy数组相当快地获得所需的值。例如,对于所有11月份的帖子,我们首先将原始数组分离为仅来自11月的数组,然后对第二列中的值进行汇总。请注意,使用此方法,您的原始数组甚至不必按顺序排列月份。
import numpy as np
a = [[12, 0],[12, 0],[11, 1],[11, 0],[11, 1],[10, 0],[10, 1],[10, 0]]
a = np.array(a)
b = a[np.where(a == 11)[0]]
sum = np.sum(b, axis=0)[1]https://stackoverflow.com/questions/34621212
复制相似问题