我有一个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,依此类推。一个例子对我来说非常有帮助。提前感谢您的帮助!
答案 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