【发布时间】:2015-11-27 05:18:08
【问题描述】:
获取groupby 元素的随机样本的最佳方法是什么?据我了解,groupby 只是一个可迭代的组。
如果我想选择N = 200 元素,我会为可迭代执行此操作的标准方法是:
rand = random.sample(data, N)
如果您尝试上述数据是“分组”的,则结果列表的元素由于某种原因是元组。
我发现以下示例用于随机选择单个键 groupby 的元素,但这不适用于多键 groupby。来自How to access pandas groupby dataframe by key
创建分组对象
grouped = df.groupby('some_key')挑选 N 个数据帧并获取它们的索引
sampled_df_i = random.sample(grouped.indices, N)使用 groupby 对象 'get_group' 方法获取组
df_list = map(lambda df_i: grouped.get_group(df_i),sampled_df_i)可选 - 将其全部转回单个数据框对象
sampled_df = pd.concat(df_list, axis=0, join='outer')
【问题讨论】:
标签: python pandas random group-by