【发布时间】:2020-12-12 15:54:32
【问题描述】:
我有两个组(A 和 B)的数据框,在这些组中,有 6 个子组(a、b、c、d、e 和 @987654329 @)。下面的示例数据:
index group subgroup value
0 A a 1
1 A b 1
2 A c 1
3 A d 1
4 A e 1
5 A f 1
6 B a 1
7 B b 1
8 B c 1
9 B d 1
10 B e 1
11 B f 1
... ... ... ...
虽然我在这里只列出了 12 行等于 1 的值,但实际上在实际数据集中有 300 行(值等于 2、3 等)。我正在尝试将数据框随机拆分为 6 批 50 个值。但是,我希望每个批次都包含均匀分布的 group 值(即 25 个 A 和 25 个 B)以及大致均匀分布的 subgroup 值。
例如,batch_1 可能包含:
25 个A,其中包含 4 个a、5 个b、4 个c、4 个d、5 个e 和3 个f的。以及 25 个B,其中包含 5 个a、4 个b、3 个c、5 个d、4 个e 和4 个f .
这 6 个批次将提供给 1 个用户。 (所以我实际上需要将数据帧随机拆分为多个 不同 6 个批次以供更多用户使用。)但我不知道这是应该随机拆分数据帧还是从中采样的问题。有人对如何实现这一点有建议吗?
这可能会有所帮助,但不能确保值的均匀分布:https://www.geeksforgeeks.org/break-list-chunks-size-n-python/
【问题讨论】:
-
可以尝试按组列分组,然后使用样本获取随机样本,对子组重复相同的操作
标签: python pandas dataframe data-wrangling