【问题标题】:Python Pandas - Sample certain number of individuals from binned dataPython Pandas - 从分箱数据中采样一定数量的个体
【发布时间】:2021-02-08 18:49:54
【问题描述】:

这是我正在使用的 DF 的一个虚拟示例。它有效地包含分箱数据,其中第一列给出一个类别,第二列给出该类别中的个人数量。

df = pd.DataFrame(data={'Category':['A','B','C','D','E','F','G','H','I'],
                    'Count':[1000,200,850,350,4000,20,35,4585,2],})

我想从这些数据中随机抽取 100 个样本。因此,例如我的随机样本可能是:

sample1 = pd.DataFrame(data={'Category':['A','B','C','D','E','F','G','H','I'],
                    'Count':[15,2,4,4,35,0,15,25,0],})

即样本不能包含比任何类别中实际数量更多的个体。从一个类别中抽取 0 个个体是可能的(对于计数较低的类别更有可能)。

我该怎么做呢?我觉得肯定有一个简单的答案,但我想不出来!

提前谢谢你!

【问题讨论】:

    标签: python pandas dataframe random sample


    【解决方案1】:

    您可以尝试更换样品:

    df.sample(n=100, replace=True, weights=df.Count).groupby(by='Category').count()
    

    【讨论】:

    • 感谢您的回答。我认为它做了我想要的,但你能解释一下代码在做什么吗?
    • @Dexoryte Sample with replacement 然后将同一类别中的条目分组在一起。
    猜你喜欢
    • 2021-05-27
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 2018-04-06
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多