我有一个像这样的 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)
但是,我只是希望从一组中采样的概率相同,而不一定是完全相同的行数。
提前致谢。
这可以在示例代码中使用 frac 而不是 n 来完成。要对给定 ID 使用 50% 的样本:
newdf=df.groupby("ID").sample(frac=0.5, replace = True)
display(newdf)