Pandas Groupy只接受前N组

Chr*_*uer 14 python pandas

我有一些DataFrame,我想按ID分组,例如:

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
Run Code Online (Sandbox Code Playgroud)

哪个产生:

  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]
Run Code Online (Sandbox Code Playgroud)

我可以轻松地按ID分组:

grouped = df.groupby("item_id")
Run Code Online (Sandbox Code Playgroud)

但是,我怎样才能只返回前N个分组对象?E. g.我只想要前3个唯一的item_ids.

Jia*_* Li 14

这是使用的一种方式list(grouped).

result = [g[1] for g in list(grouped)[:3]]

# 1st
result[0]

  item_id  user_id
0       a        1
1       a        2

# 2nd
result[1]

  item_id  user_id
2       b        1
3       b        1
4       b        3
Run Code Online (Sandbox Code Playgroud)