获取a元素的随机样本的最佳方法是groupby什么?据我所知,a groupby只是一个可迭代的群组.
如果我想选择N = 200元素,我将为迭代执行此操作的标准方法是:
rand = random.sample(data, N)
Run Code Online (Sandbox Code Playgroud)
如果你尝试上面的数据是'分组',结果列表的元素由于某种原因是元组.
我找到了以下示例,用于随机选择单个键的元素groupby,但这不适用于多键groupby.从,如何按键访问pandas groupby dataframe
创建groupby对象
Run Code Online (Sandbox Code Playgroud)grouped = df.groupby('some_key')选择N个数据帧并获取其索引
Run Code Online (Sandbox Code Playgroud)sampled_df_i = random.sample(grouped.indices, N)使用groupby对象'get_group'方法获取组
Run Code Online (Sandbox Code Playgroud)df_list = map(lambda df_i: grouped.get_group(df_i),sampled_df_i)可选 - 将其全部转换回单个数据框对象
Run Code Online (Sandbox Code Playgroud)sampled_df = pd.concat(df_list, axis=0, join='outer')