You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中GroupBy后随机选取指定数量分组的实现方法

随机选取指定数量分组的实现方法

没问题,针对你已经按col1和col2分组的DataFrame,这里有两种实用的方法来随机选取3个分组并提取对应的数据:

方法一:手动筛选分组后合并

这种方法适合需要先查看选中分组名称的场景:

import pandas as pd
import numpy as np

# 你的分组对象
g = df.groupby(['col1', 'col2'])

# 获取所有分组的键(即(col1, col2)的组合)
all_groups = list(g.groups.keys())

# 随机挑选3个不重复的分组
selected = np.random.choice(all_groups, size=3, replace=False)

# 把选中的分组数据拼接起来
result = pd.concat([g.get_group(group) for group in selected])

# 输出结果
print(result)

方法二:使用GroupBy的sample方法(更简洁)

Pandas的GroupBy对象自带sample方法,可以直接指定要选取的分组数量:

# 直接从分组对象中随机选3个分组,replace=False确保不重复选取
result = g.sample(n=3, replace=False)

# 如果需要固定随机种子(方便复现结果),可以加上random_state参数
# result = g.sample(n=3, replace=False, random_state=42)

注意事项

  • 如果你的总分组数量不足3个,上述代码会抛出错误,建议提前做个判断:
    total_groups = len(g)
    if total_groups >= 3:
        result = g.sample(n=3, replace=False)
    else:
        print(f"当前仅存在{total_groups}个分组,无法选取3个")
    

内容的提问来源于stack exchange,提问作者Hana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:27:14