【问题标题】:Python Pandas - Sampling: putting a limit on number of items on a Random selectionPython Pandas - 采样:限制随机选择的项目数量
【发布时间】:2020-04-28 22:35:18
【问题描述】:

假设我有一个看起来像这样的数据框:

id_1 id_2
aa    123 
bb    123 
cc    234
dd    123
ee    678
FF    456
gg   123

id_2 列中最多只能有 3 个(或任何其他数量)相同项目的条件下,我如何进行抽样?我们不一定需要此列有 3 或 2 个相同的项目(因为它是随机样本,它必须是随机选择),但如果要重复它最多可以是 X 次(由阈值)

假设 n=5,阈值为 3

id_1 id_2
aa    123  
dd    123
ee    678
FF    456
gg    123

【问题讨论】:

    标签: python pandas sampling


    【解决方案1】:
    import pandas as pd
    df = pd.read_clipboard()
    
    def get_sample(df, thresh):
        df1 = df.sample(n=5)
        while df1.id_2.value_counts().max() > thresh:
            print(df1.id_2.value_counts().max())
            df1 = df.sample(n=5)
        return df1
    
    df1 = get_sample(df, 3)
    
    print(df1)
    
        id_1    id_2
    3   dd  123
    4   ee  678
    5   FF  456
    6   gg  123
    1   bb  123
    

    【讨论】:

      猜你喜欢
      • 2016-10-16
      • 2015-11-27
      • 1970-01-01
      • 2021-05-04
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      相关资源
      最近更新 更多