Python用于对指定列中的元素进行分组

时间:2013-12-07 14:40:38

标签: python collections count

我想计算第3列中所有独特元素的数量,并希望了解实现此结果的最pythonic方法。

我的输入数据如下:

act by+n+n-a-bas    act 0.04809825
act by+n+n-a-bas    art 0.01603275
act by+n+n-a-bas    evt 0.01603275
act nmod+ns-the-j+n-a   art 11.6016481452
act nmod+ns-the-j+n-a   pro 1.40733988889
act nmod+ns-the-j+n-a   pos 0.757101266667
act nmod+ns-the-j+n-a   pho 1.7562449

我想要的结果如下:

act act 1
act art 2
act evt 1
act pro 1
act pos 1
act pho 1

其中我总结了Col3中每个不同值的唯一元素的数量。例如,虽然Col1中的值始终相同,但collections()是否有意义?感谢您的任何见解。

1 个答案:

答案 0 :(得分:2)

您可以像这样使用Counter

from collections import Counter
with open("Input.txt") as inFile:
    print Counter([" ".join(line.split()[::2]) for line in inFile])

<强>输出

Counter({'act art': 2, 'act pho': 1, 'act act': 1, 'act pro': 1, 'act evt': 1,
'act pos': 1})