1

我一直在寻找几个小时,实际上一整天都在寻找如何在 Python 中生成数据透视表。我对python很陌生,所以请多多包涵。

我想要的是获取一个csv文件,提取第一列并使用该列中数字的计数或频率生成一个数据透视表,然后降序排序

import pandas

import numpy 


from numpy import recfromtxt
a = recfromtxt('1.csv', skiprows=1, usecols=0, delimiter=',')


print a

^ 我在这里得到的是第一列的列表 [2 2 2 6 7]

我需要的是导出 2 列

2--3

6--1

7--1

4

1 回答 1

1

你看过这里吗?

https://pypi.python.org/pypi/pivottable

否则,从您的示例中,您可能只使用列表推导:

>>> l = [2,2,2,6,7]
>>> [(i, l.count(i)) for i in set(l)]

[
    (2,3),
    (6,1),
    (7,1)
]

甚至字典理解,这取决于你需要什么:

>>> l = [2,2,2,6,7]
>>> {i:l.count(i) for i in set(l)}

{
    2: 3,
    6: 1,
    7: 1
}

编辑(来自@Peter DeGlopper 的建议)

使用collections.Counter的另一种更有效的方法(阅读下面的评论):

>>> from collections import Counter
>>> l = [2,2,2,6,7]
>>> Counter(l)

Counter({2: 3, 6: 1, 7: 1})
于 2013-10-16T22:26:46.360 回答