pandas:groupby之后的样本组

时间:2014-12-04 21:33:59

标签: python pandas

如何在pandas中的groupby之后对组进行采样?说我想在groupby之后获得上半部分组。

In [194]: df = pd.DataFrame({'name':['john', 'george', 'john','andrew','Daniel','george','andrew','Daniel'], 'hits':[12,34,13,23,53,47,20,48]})
In [196]: grouped = df.groupby('name')

有乔恩','乔治',' andrew','丹尼尔' 分组中的4个群组,我有兴趣从4个群组中获取2个群组。它返回的是哪两个群组并不重要。

非常感谢。

2 个答案:

答案 0 :(得分:3)

您可以提前对名称进行采样,并仅对所选名称进行分组:

selected_names = np.random.choice(df.name.unique(),2,replace = False)
grouped = df[df.name.isin(selected_names)].groupby('name')

答案 1 :(得分:0)

感谢快速回复,ajcr和cwharland。我可能不清楚我想要什么,但你的建议很棒。我做了:

choices =np.random.choice(grouped.indices.keys(), 2, replace=False)
df[df['name'].isin(choices)]

并得到我希望的结果:

Out[215]: 
   hits    name
0    12    john
2    13    john
3    23  andrew
6    20  andrew

谢谢你们两位!