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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie übergeben eine Liste der Spalten groupby, was Sie übergeben wurde interpretiert als die
axis
param weshalb er hob einen Fehler:Wenn Sie möchten, group by mehrere Spalten, Sie sollten legte Sie in eine Liste:
Oder etwas Ausführlicher, für den Willen, immer das Wort 'avg' in Ihrer aggregierten dataframe: