Was ist der effizienteste Weg, um Vorkommnisse in Pandas zu zählen?
Ich habe einen großen (etwa 12M Zeilen) dataframe df mit sagen:
df.columns = ['word','documents','frequency']
Also Folgendes lief in eine rechtzeitige fashion:
word_grouping = df[['word','frequency']].groupby('word')
MaxFrequency_perWord = word_grouping[['frequency']].max().reset_index()
MaxFrequency_perWord.columns = ['word','MaxFrequency']
Dies ist jedoch unter einer unerwartet langen Zeit zu laufen:
Occurrences_of_Words = word_grouping[['word']].count().reset_index()
Was mache ich hier falsch? Gibt es eine bessere Art und Weise zu zählen, vorkommen in einem großen dataframe?
df.word.describe()
lief ziemlich gut, so dass ich wusste wirklich nicht erwarten, dass diese Occurrences_of_Words dataframe sehr lange dauern, um zu bauen.
ps: Wenn die Antwort offensichtlich ist und Sie die Notwendigkeit spüren, zu bestrafen mich für diese Frage, bitte die Antwort als gut. danke.
InformationsquelleAutor der Frage tipanverella | 2013-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke
df['word'].value_counts()
dienen sollte. Durch das überspringen der groupby-Maschinen, werden Sie Zeit sparen. Ich bin mir nicht sicher, warumcount
sollte viel langsamer alsmax
. Beide nehmen einige Zeit, um zu vermeiden, fehlende Werte. (Vergleichen Sie mitsize
.)In jedem Fall, value_counts wurde speziell optimiert zu behandeln den Objekt-Typ, wie Ihre Worte, so bezweifle ich, dass Sie viel besser tun als das.
InformationsquelleAutor der Antwort Dan Allan
Wenn Sie zählen möchten, die Häufigkeit der kategorische Daten in einer Spalte in pandas dataFrame verwenden:
df['Column_Name'].value_counts()
-Quelle.
InformationsquelleAutor der Antwort Dwaraka Uttarkar