Tengo un gran marco de datos (aproximadamente 12 millones de filas) df con decir:
df.columns = ['word','documents','frequency']
Entonces lo siguiente se ejecutó de manera oportuna:
word_grouping = df[['word','frequency']].groupby('word')
MaxFrequency_perWord = word_grouping[['frequency']].max().reset_index()
MaxFrequency_perWord.columns = ['word','MaxFrequency']
Sin embargo, esto tarda un tiempo inesperado en ejecutarse:
Occurrences_of_Words = word_grouping[['word']].count().reset_index()
¿Qué estoy haciendo mal aquí? ¿Hay una mejor manera de contar las ocurrencias en un gran marco de datos?
df.word.describe()
funcionó bastante bien, por lo que realmente no esperaba que este marco de datos Occurrences_of_Words tardara mucho en construirse.
PD: Si la respuesta es obvia y sientes la necesidad de penalizarme por hacer esta pregunta, incluye la respuesta también. gracias.
df.word.value_counts()['myword']
es aproximadamente el doble de rápido quelen(df[df.word == 'myword'])
.Cuando desee contar la frecuencia de datos categóricos en una columna en el uso de pandas dataFrame:
df['Column_Name'].value_counts()
- Fuente .
fuente
Solo una adición a las respuestas anteriores. No olvidemos que cuando se trata de datos reales puede haber valores nulos, por lo que es útil incluirlos también en el recuento utilizando la opción
dropna=False
(el valor predeterminado esTrue
)Un ejemplo:
fuente