Pandas: Verwenden von groupby, um den Mittelwert für jede Datenkategorie zu ermitteln

Ich habe einen Datenrahmen, der so aussieht:

>>> df[['data','category']]
Out[47]: 
          data     category
  0       4610            2
 15       4610            2
 22       5307            7
 23       5307            7
 25       5307            7
...        ...          ...

Beide Daten und Kategorien sind numerisch, daher kann ich dies tun:

>>> df[['data','category']].mean()
Out[48]: 
data        5894.677985
category      13.805886
dtype: float64

Und ich versuche, den Mittelwert für jede Kategorie zu ermitteln. Es sieht einfach aus, aber wenn ich das tue:

>>> df[['data','category']].groupby('category').mean()

ode

>>> df.groupby('category')['data'].mean()

It gibt einen Fehler wie diesen zurück:

DataError: No numeric types to aggregate

Es gibt keinen Fehler, wenn ich beide oben genannten Funktionen durch @ ersetz.count().

Was mache ich falsch? Was ist der richtige Weg, um den Mittelwert für jede Kategorie zu ermitteln?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage