用python处理一个数据文档,我在补充问题中详细描述。

例如一个文档是这样的 :
有两列十一行

a 1
a 1
a 3
b 1
b 2
b 3
c 1
d 3

e 2

e 2
e 3
现在统计出比如a有多少个1多少个2多少个3 ,没有计为零。总之就是统计所有第一列不重复元素a,b,c,d,e各有多少个1,2,3.

>>> 
>>> import re
>>> from collections import Counter
>>> 
>>> patt = re.compile(r"""^
... (?P<ch>\w+)
... \s+
... (?P<dg>\d+)
... \s*$""", re.I|re.U|re.X)
>>> 
>>> datas = {}
>>> for m in filter(None, map(patt.match, context.splitlines())):
...     info = m.groupdict()
...     datas.setdefault(info["ch"], []).append(info["dg"])
... 
>>> for ch, dgs in datas.iteritems():
...     cnt = Counter(dgs)
...     print ch, cnt.most_common()
... 
a [('1', 2), ('3', 1)]
c [('1', 1)]
b [('1', 1), ('3', 1), ('2', 1)]
e [('2', 2), ('3', 1)]
d [('3', 1)]

追问

你好,可以加一下注释吗?

温馨提示:答案为网友推荐,仅供参考
相似回答