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?