каков наиболее эффективный способ подсчета встречаемости у панд?
у меня есть большой (около 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 ответа:
Я думаю
df['word'].value_counts()
должны служить. Пропуская машины groupby, вы сэкономите некоторое время. Я не уверен, почемуcount
должна быть намного медленнее, чемmax
. Как потребуется некоторое время, чтобы избежать пропущенных значений. (Сравните сsize
.)в любом случае, value_counts был специально оптимизирован для обработки типа объекта, как ваши слова, так что я сомневаюсь, что вы будете делать намного лучше, чем это.
Если вы хотите подсчитать частоту категориальных данных в столбце в pandas dataFrame используйте:
df['Column_Name'].value_counts()
-источник.