Python Pandas-抽样:对随机选择项的数量进行限制

问题描述 投票:2回答:1

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

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

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

说n = 5且阈值为3

id_1 id_2
aa    123  
dd    123
ee    678
FF    456
gg    123
python pandas sampling
1个回答
0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.