pandas GroupBy后的子样本

twh00eeo  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(83)

我有一个dataframe,看起来像这样:

df =

id   tweet 
1     a         
1     b        
1     b        
1     a        
2     d         
2     a         
2     a         
3     b      
3     b   
4     a       
4     b

现在我想按他们的id分组并获取他们的tweet:

df.groupby(["id"]).count()

这让我想到

df =

id   count
1     4         
2     3        
3     2     
4     2

然而,我想对数据进行二次采样,这样只有<n tweet的用户才能保存在dataframe中,如果你有超过n的样本(tweet),你的tweet应该被随机二次采样。我该怎么做?我已经尝试了以下方法,但它们只返回整行的n样本…

n=3
print(data.groupby(["user_id"]).apply(lambda x: x.sample(min(n,len(x)), replace=False)).reset_index(drop=True))
print(data.groupby('user_id').sample(n, random_state=1))
g6ll5ycj

g6ll5ycj1#

shuffle然后groupby().head()

df.sample(frac=1).groupby('id').head(N)

相关问题