来自具有给定特征的数据帧的Python随机样本



我有一个数据帧df和患者subject_id,包括他们的genderage

我想从这个数据帧中抽取一个n大小的随机样本,具有以下特征:

  • 50%为男性,50%为女性
  • 中位年龄40岁

知道我如何使用python实现这一点吗?非常感谢。

我认为您想要的东西比DataFrame.sample开箱即用的东西要复杂一点。可以(分别(生成满足每个条件的随机样本,如下所示:

  1. 仅对女性进行筛选,并随机抽取n/2,然后对男性进行同样的操作,然后将其汇集
  2. 对40岁以下的人进行筛选,随机抽取n/2,然后对40岁以上的人进行同样的筛选,然后将其组合。(不过请注意,这并不能保证中位数恰好为40。(

如果你想结合这两个约束条件,你可能需要采样4次——40岁以下的女性、40岁以下男性等。但这是一般的想法。

采样代码如下所示:

df.loc[df.age < 40, 'subject_id'].sample(n/2)
df.loc[df.gender == 'F', 'subject_id'].sample(n/2)

最新更新