提问者:小点点

计算熊猫出现次数最有效的方法是什么?


我有一个大的(大约12M行)DataFramedf

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()

我在这里做错了什么?有没有更好的方法来计算大型数据帧中的事件?

df.word.describe()

运行得很好,所以我真的没想到这个Occurrences_of_WordsDataFrame需要很长时间才能构建。


共3个答案

匿名用户

我认为df['word'].value_counts()应该有用。通过跳过groupby机器,您将节省一些时间。我不确定为什么count应该比max慢得多。两者都需要一些时间来避免丢失值。(与size比较。)

无论如何,value_counts已经被专门优化来处理对象类型,比如你的话,所以我怀疑你会做得更好。

匿名用户

当您想计算熊猫数据帧中列中分类数据的频率时,请使用:df['Column_Name']。value_counts()

-来源。

匿名用户

只是对前面答案的补充。我们不要忘记,在处理真实数据时可能会有空值,因此使用选项dropna=False(默认为True)将这些值也包含在计数中很有用

举个例子:

>>> df['Embarked'].value_counts(dropna=False)
S      644
C      168
Q       77
NaN      2