随机选择x个样本,使用numpy替换

时间:2017-10-23 08:16:16

标签: python pandas numpy dataframe random

我有一个如下所示的数据框:

    revisionId  itemId wikidataType
1    307190482      23           Q5
6    305019084      80           Q5
8    303692414     181           Q5
9    306600439     192           Q5
11   294597048     206           Q5

在完整的数据框中,列wikidataType中存在100个不同的值。它是一个大型数据框,所以我想将其限制为每wikidataType 1000条记录,然后我使用以下内容随机选择它:

df = df.groupby('wikidataType', group_keys=False).apply(lambda x: x.sample(1000)
        if len(x) > 1000 else x.sample(1000, replace=True))

如果某些类型没有1000条记录,那么我想使用"替换"策略为所有wikidataTypes提供相同数量的记录。因此,我使用了replace=True。例如。如果对于wikidataType Q5我有900条记录,那么我想重复一些随机的100条记录,但是要记录900条记录。所以最后我将有900条不同的记录,其中100条重复。我使用了x.sample(1000, replace=True),但只给了我4个不同的类型Q5的记录,每个记录重复多次,当时我实际上有1000个不同类型的记录。我该如何解决这个问题?

0 个答案:

没有答案