Group by ohne aggregate Funktion
Ich habe gesehen, ein pandasql
Abfrage wie diese:
df = pd.DataFrame({'A': [1, 2, 2], 'B': [3, 4, 5]})
sqldf('select * from df group by A', locals())
Gibt es:
A B
0 1 3
1 2 6
Ich finde es wirklich seltsam, haben ein group by ohne aggregate Funktion, aber kann mir jemand sagen, welche Funktion verwendet wird, auf der aggregierten Spalten zu verringern, mehrere Werte in ein?
Von ANSI-standards, die SQL-Anweisung ist falsch, da nicht aggregierte Spalten angezeigt werden muss, in
Wo haben die 6 (B1) kommt?
GROUP BY
- Klausel. MySQL ist nur Dialekt, den ich kenne, der dies ermöglicht, mit seinen only_full_group_by-Modus auf off gesetzt ist. Vielleicht ist dieses Modul verwendet diesen Modus und/oder Dialekt. Und keine direkte Funktion reduziert mehrere Werte als GROUP BY
läuft verschiedene Gruppierungen von Werten zu führen Aggregationen. Kein Zweifel, die inspiration pandas' groupby()
.Wo haben die 6 (B1) kommt?
InformationsquelleAutor zoran119 | 2017-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie die groupby-Methode, die Sie suchen
last()
:Ausgabe:
Sage ich dies, vorausgesetzt, die 5 war ein Tippfehler (siehe mein Kommentar oben) und soll 6 sein.
.last()
Funktion ist an anderer Stelle erwähnt, aber ich fand es hier, und es löste eine Frage, die ich für eine Weile hatte ich: wenn Sie wollen, einegroupby()
, sagen, mit einerMultiIndex
, wie Sie gerade wieder die Werte, die Sie wollen?Wo hast 4 gehen Sie in der Spalte="B"?
InformationsquelleAutor Andrew L