对数据帧进行分组,并在组之间以相等的概率采样 n 行

问题描述 投票:0回答:1

我有一个像这样的 pandas 数据框:

     ID  Value
0     a     2
1     a     4
2     b     6
3     c     8
4     c    10
5     c    12

我想从

ID
组中均匀采样。我知道我可以按 ID 对数据框进行分组,然后指定要从每个组中采样的行数,如下所示:
df.groupby("ID").sample(n=2, replace = True)
但是,我只是希望从一组中采样的概率相同,而不一定是完全相同的行数。

提前致谢。

python pandas group-by probability sample
1个回答
0
投票

这可以在示例代码中使用 frac 而不是 n 来完成。要对给定 ID 使用 50% 的样本:

newdf=df.groupby("ID").sample(frac=0.5, replace = True)
display(newdf)
© www.soinside.com 2019 - 2024. All rights reserved.