каков наиболее эффективный способ подсчета встречаемости у панд?


у меня есть большой (около 12 м строк) 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()

что я здесь делаю не так? Есть ли лучший способ подсчета случаев в большом фрейме данных?

df.word.describe()

работает довольно хорошо, поэтому я действительно не ожидал, что этот фрейм данных Occurrences_of_Words займет очень много времени.

ps: Если ответ очевиден, и вы чувствуете необходимость наказать меня за этот вопрос, пожалуйста, включите ответ. спасибо.

2 53

2 ответа:

Я думаю df['word'].value_counts() должны служить. Пропуская машины groupby, вы сэкономите некоторое время. Я не уверен, почему count должна быть намного медленнее, чем max. Как потребуется некоторое время, чтобы избежать пропущенных значений. (Сравните с size.)

в любом случае, value_counts был специально оптимизирован для обработки типа объекта, как ваши слова, так что я сомневаюсь, что вы будете делать намного лучше, чем это.

Если вы хотите подсчитать частоту категориальных данных в столбце в pandas dataFrame используйте:df['Column_Name'].value_counts()

-источник.