【发布时间】:2015-10-17 18:55:41
【问题描述】:
我有一些要按 ID 分组的 DataFrame,例如。 g.:
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]
我可以轻松地按 id 分组:
grouped = df.groupby("item_id")
但是我怎样才能只返回前 N 个分组对象呢?例如。我只想要前 3 个唯一的 item_id。
【问题讨论】:
-
先过滤df不是更容易吗?
df[df['item_id'].isin(df['item_id'].unique()[:3])].groupby('item_id')? -
@firelynx 我同意。我没有找到那个结果
-
迭代前 3 个组。
for n,(k,gg) in enumerate(list(g)[:3])其中 g 是groupby的一个实例。
标签: python pandas pandas-groupby