1. ホーム
  2. python

[解決済み] pandasで出現回数をカウントする最も効率的な方法は何ですか?

2022-04-20 14:36:01

質問

大きな(約12M行の)データフレーム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: もし答えが明白で、この質問をしたことで私にペナルティを与える必要があると感じたら、答えも含めて教えてください。

解決方法は?

私が思うに df['word'].value_counts() を使用する必要があります。groupbyの機械をスキップすることで、時間を節約することができます。なぜ count よりもはるかに遅いはずです。 max . どちらも欠損値を避けるためにある程度の時間がかかります。(比較対象は size .)

いずれにせよ、value_countsが 特に最適化された は、あなたの言葉のようにオブジェクト型を扱うため、それ以上のことはできないでしょう。