首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -添加并与数组合并

Python -添加并与数组合并
EN

Stack Overflow用户
提问于 2016-01-05 21:03:48
回答 2查看 54关注 0票数 0

我正在使用Facebook来收集一些关于提到的数据。我正在收集一个月,一个术语(如:香蕉)在一篇文章中提到的次数。所以我现在有数据显示如下:

代码语言:javascript
复制
12, 0
12, 0
11, 1
11, 0
11, 1
10, 0
10, 0
10, 0

每一行代表一个员额。我希望合并月份(第一栏)和一个术语被提到的次数(第二栏),因此它看起来如下:

代码语言:javascript
复制
12, 0
11, 2
10, 0

我尝试将数据放入一个数组中,如下所示:

代码语言:javascript
复制
[12, 0]
[12, 0]
[11, 1]
[11, 0]
[11, 1]
[10, 0]
[10, 0]
[10, 0]

但是无法找到合并和添加列的方法。有这么做的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-05 21:10:47

假设您的数据是元组或列表的列表,则可以使用defaultdict并对列表进行迭代,例如:

代码语言:javascript
复制
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for m, c in data:
...     d[m] += c
>>> list(d.items())
[(10, 0), (11, 2), (12, 0)]
票数 1
EN

Stack Overflow用户

发布于 2016-01-05 21:49:23

我不确定是否有工具可用于根据第一列中的值进行合并,但您可以使用numpy数组相当快地获得所需的值。例如,对于所有11月份的帖子,我们首先将原始数组分离为仅来自11月的数组,然后对第二列中的值进行汇总。请注意,使用此方法,您的原始数组甚至不必按顺序排列月份。

代码语言:javascript
复制
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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34621212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档