Pandas框架:确定列数据的计数

时间:2014-11-25 09:08:33

标签: python numpy pandas

我有一个TSV文件,其数据如下所示:

UserID    ItemID

100       1
200       1
300       2
400       3
500       2
600       4
700       4
800       5
    ...
    ...
N         X

我是pandas框架的新手,我想知道如何获得与上述数据集相关的所有ItemID的所有ItemID的计数。例如,如果我们假设在上面的TSV文件中ItemID 1只重复两次,我需要将计数作为2,依此类推。一个例子对我来说非常有帮助。提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

如@edchum所述,value_count可用于“ItemID”列。它将返回一个索引为“ItemID”的系列,并将值作为“ItemID”的计数。

counter = df["ItemID"].value_counts() #df is your dataframe
print counter[1] #prints how many times 1 occurred

答案 1 :(得分:0)

以下是两种方法:

In [14]:
# setup data, note I have put userID 100 3 times
temp="""UserID    ItemID
100       1
100       1
100       2
400       3
500       2
600       4
700       4
800       5"""

df = pd.read_csv(io.StringIO(temp), sep='\s+')
# count the occurences of each user
df.groupby('UserID').count()
Out[14]:
        ItemID
UserID        
100          3
400          1
500          1
600          1
700          1
800          1
In [15]:
# count each ItemID unique values
df['ItemID'].value_counts()
Out[15]:
4    2
2    2
1    2
5    1
3    1
dtype: int64