У меня есть DataFrame, который я хочу сгруппировать по идентификатору, например. грамм.:
import pandas as pd
df = pd.DataFrame({'item_id': ['a', 'a', 'b', 'b', 'b', 'c', 'd'], 'user_id': [1,2,1,1,3,1,5]})
print df
Что генерирует:
item_id user_id
0 a 1
1 a 2
2 b 1
3 b 1
4 b 3
5 c 1
6 d 5
[7 rows x 2 columns]
Я могу легко сгруппировать по идентификатору:
grouped = df.groupby("item_id")
Но как я могу вернуть только первые N объектов group-by? напр. Мне нужны только первые 3 уникальных идентификатора item_id.
df[df['item_id'].isin(df['item_id'].unique()[:3])].groupby('item_id')
? - person EdChum   schedule 27.07.2015for n,(k,gg) in enumerate(list(g)[:3])
, где g — экземплярgroupby
. - person BSalita   schedule 10.05.2021