我有一个如下所示的数据框:
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个不同类型的记录。我该如何解决这个问题?