我有一个大的(大约 1200 万行)DataFrame df
:
df.columns = ['word','documents','frequency']
以下及时运行:
word_grouping = df[['word','frequency']].groupby('word')
MaxFrequency_perWord = word_grouping[['frequency']].max().reset_index()
MaxFrequency_perWord.columns = ['word','MaxFrequency']
但是,这需要很长时间才能运行:
Occurrences_of_Words = word_grouping[['word']].count().reset_index()
我在这里做错了什么?有没有更好的方法来计算大型 DataFrame 中的出现次数?
df.word.describe()
运行得很好,所以我真的没想到这个 Occurrences_of_Words
DataFrame 需要很长时间才能构建。
原文由 tipanverella 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为
df['word'].value_counts()
应该服务。通过跳过 groupby 机器,您将节省一些时间。我不确定为什么count
应该比max
慢得多。两者都需要一些时间来避免缺失值。 (与size
比较。)无论如何,value_counts 已经 专门优化 来处理对象类型,就像你的话一样,所以我怀疑你会做得更好。