2014-11-25 2 views
0

у меня есть TSV файл с данными, как показано ниже:Панда рамки: определения количества используемых данных столбцов

UserID ItemID 

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

Я новичок в рамки панд и я хочу знать, как я могу получить кол все ItemID, связанные со всеми пользователями, для вышеуказанного набора данных. Например, если предположить, что в приведенном выше файле TSV ItemID 1 повторяется только два раза, мне нужно получить счет как 2 и так далее. Пример будет очень полезен для меня. Цените свою помощь заранее!

+0

[ 'value_counts'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.value_counts.html# pandas.Series.value_counts) является вашим другом – EdChum

+0

@ EdChum можно ли использовать группу по столбцу UserID и получить счетчик числа ItemID? Если я должен использовать value_counts, не могли бы вы дать мне пример того, как это можно сделать для вышеуказанных данных? – Var

+0

Вы хотите получить счетчик ItemID для каждого пользователя или общий счет за элемент? – EdChum

ответ

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

Не могли бы вы добавить дополнительную информацию вместе с вашим ответом? – Max

0

Здесь 2 метод:

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 
+0

Спасибо за помощь, это было очень полезно! – Var

+0

@Var вы можете принять мой ответ, если он ответит на ваш вопрос, будет пустой знак галочки под стрелками для голосования слева – EdChum

Смежные вопросы