in SQL würde die Abfrage wie select id, avg(x), avg(y), max(x), max(y) from table group by id
aussehen kann es in eine einzige Operation auf Pandas Datenrahmen umgewandelt werden? Ich kann jede Funktion Ergebnis erhalten wieAnwenden einer Operation auf mehrere Spalten mit mehreren Spalten im Ergebnis
mydf['center_x'] = mydf.groupby('id')['x'].mean()
mydf['center_y'] = mydf.groupby('id')['y'].mean()
etc
aber es ist ein übermäßiger Aufruf der gleichen Operation sowie übermäßiger Speicherbedarf (mydf ist sehr groß). Außerdem ist es etwas mühsam, das einzigartige Set am Ende zu bekommen.
Irgendwelche Ideen?
'agg' ist definitiv die Antwort, aber in Bezug auf Ihre letzte Aussage: Sie können s ave ein groupby-Objekt ('g = df.groupby ('id')') und dann bei Bedarf Funktionen aufrufen ('g ['x']. mean()' usw.), müssen Sie nicht jedes Mal gruppieren – ayhan