Pandas dataframe: Gruppe von zwei Spalten und dann den Mittelwert über eine andere Spalte

Davon aus, dass ich einen dataframe mit den folgenden Werten:

df:
col1    col2    value
1       2       3
1       2       1
2       3       1

Will ich erstmal groupby mein dataframe auf der Grundlage der ersten beiden Spalten (col1 und col2) und dann den Mittelwert über die Werte der thirs Spalte (Wert). Also die gewünschte Ausgabe würde wie folgt Aussehen:

col1    col2    avg-value
1       2       2
2       3       1

Ich bin mit dem folgenden code:

columns = ['col1','col2','avg']
df = pd.DataFrame(columns=columns)
df.loc[0] = [1,2,3]
df.loc[1] = [1,3,3]
print(df[['col1','col2','avg']].groupby('col1','col2').mean())

kommt die folgende Fehlermeldung:

ValueError: No axis named col2 for object type <class 'pandas.core.frame.DataFrame'>

Jede Hilfe wäre sehr geschätzt werden.

InformationsquelleAutor ahajib | 2016-02-23
Schreibe einen Kommentar