【发布时间】:2017-10-21 09:34:45
【问题描述】:
我有如下所示的数据框:
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[df.groupby('wikidataType')['wikidataType'].cumcount() < 1000]
这为每个 wikidataType 提供了前 1000 条记录。我想随机选择这 1000 条记录。所以我尝试使用
df = df[random.sample(list(df.groupby('wikidataType')['wikidataType']), 1000)]
但是报错了:
TypeError: 'Series' 对象是可变的,因此它们不能被散列
我什至尝试过
df = df[df.groupby('wikidataType')['wikidataType'].cumcount().random() < 1000]
但这也没有用。有谁知道我该怎么做?
提前致谢。
【问题讨论】:
标签: python pandas dataframe group-by pandas-groupby