【问题标题】:Python random sample from dataframe with given characteristics来自具有给定特征的数据帧的 Python 随机样本
【发布时间】:2022-01-07 20:59:36
【问题描述】:

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

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

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

知道如何使用 python 来实现吗? 谢谢!

【问题讨论】:

标签: python pandas dataframe random sample


【解决方案1】:

我认为你想要的比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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多