Pandas: uso de groupby para obtener la media de cada categoría de datos
Tengo un marco de datos que se ve así:
>>> df[['data','category']]
Out[47]:
data category
0 4610 2
15 4610 2
22 5307 7
23 5307 7
25 5307 7
... ... ...
Tanto los datos como la categoría son numéricos, así que puedo hacer esto:
>>> df[['data','category']].mean()
Out[48]:
data 5894.677985
category 13.805886
dtype: float64
Y estoy tratando de obtener la media para cada categoría. Parece sencillo pero cuando hago esto:
>>> df[['data','category']].groupby('category').mean()
o
>>> df.groupby('category')['data'].mean()
Devuelve un error como este:
DataError: No numeric types to aggregate
No hay error si reemplazo ambas funciones anteriores con.count()
.
¿Qué hago mal? ¿Cuál es la forma correcta de obtener la media de cada categoría?