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

Python random sample from dataframe with given characteristics

我有一个包含患者 subject_id 的数据框 df,包括他们的 gender 和他们的 age

我想从此数据框中抽取大小为 n 的随机样本,具有以下特征:

知道如何使用 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)