如何从groupby
中获取随机抽样?据我了解,groupby
只是对分组进行迭代的方式。
如果我想从一个可迭代对象中选择N=200
个元素,我通常会使用以下标准方法:
rand = random.sample(data, N)
如果您尝试上述操作,其中数据是“分组”的,那么结果列表的元素因某种原因是元组。我找到了下面的示例,用于随机选择单个键groupby
的元素,但这在多键groupby
中不起作用。来自如何按键访问pandas groupby dataframe。
创建groupby对象
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')
import random
,并在第三步中使用list(df_list)
将其放置为pd.concat(list(df_list))
。 - MItrajyoti