Saya memiliki dataframe df besar (sekitar 12M baris) dengan mengatakan:
df.columns = ['word','documents','frequency']
Jadi yang berikut ini berjalan tepat waktu:
word_grouping = df[['word','frequency']].groupby('word')
MaxFrequency_perWord = word_grouping[['frequency']].max().reset_index()
MaxFrequency_perWord.columns = ['word','MaxFrequency']
Namun, ini membutuhkan waktu lama untuk dijalankan:
Occurrences_of_Words = word_grouping[['word']].count().reset_index()
Apa yang saya lakukan salah di sini? Apakah ada cara yang lebih baik untuk menghitung kejadian dalam kerangka data yang besar?
df.word.describe()
berjalan cukup baik, jadi saya benar-benar tidak mengharapkan kerangka data Occurrences_of_Words ini membutuhkan waktu lama untuk dibangun.
ps: Jika jawabannya jelas dan Anda merasa perlu menghukum saya karena mengajukan pertanyaan ini, harap sertakan juga jawabannya. Terima kasih.
df.word.value_counts()['myword']
sekitar dua kali lebih cepatlen(df[df.word == 'myword'])
.Saat Anda ingin menghitung frekuensi data kategorikal dalam kolom di panda dataFrame, gunakan:
df['Column_Name'].value_counts()
- Sumber .
sumber
Hanya tambahan untuk jawaban sebelumnya. Jangan lupa bahwa ketika berhadapan dengan data nyata mungkin ada nilai nol, jadi ada baiknya juga menyertakan nilai tersebut dalam penghitungan dengan menggunakan opsi
dropna=False
( standarnya adalahTrue
)Sebuah contoh:
sumber