ich einen Datenrahmen wie dieses:Pandas GROUPBY: Wie eine Vereinigung von Strings bekommen
A B C
0 1 0.749065 This
1 2 0.301084 is
2 3 0.463468 a
3 4 0.643961 random
4 1 0.866521 string
5 2 0.120737 !
Aufruf
In [10]: print df.groupby("A")["B"].sum()
kehrt
A
1 1.615586
2 0.421821
3 0.463468
4 0.643961
Jetzt würde ich tun "das gleiche" für die Spalte "C". Da diese Spalte Zeichenfolgen enthält, funktioniert sum() nicht (obwohl Sie vielleicht denken, dass es die Zeichenfolgen verketten würde). Was würde ich wirklich gerne sehen, ist eine Liste oder einen Satz von Saiten für jede Gruppe, das heißt
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
Ich habe versucht, Wege zu finden, dies zu tun.
Series.unique() (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html) nicht funktioniert, obwohl
df.groupby("A")["B"]
ein
istpandas.core.groupby.SeriesGroupBy object
so wurde ich jede Serie Methode funktionieren würde hoffen. Irgendwelche Ideen?
Dank Jeff. Wie könnte ich verschiedene Funktionen auf mehrere Spalten gleichzeitig anwenden, z. Summe in Spalte "B" und in Spalte "C" setzen? – Anne
hinzugefügt einen Abschnitt, um das zu tun – Jeff
Danke Jeff!Ich habe es noch nicht versucht, aber ich möchte die Logik dahinter verstehen. Sie erstellen ein Reihenwörterbuch und wandeln es in eine Serie um? Kann mein (zugegebenermaßen frazzled) Gehirn nicht bekommen, was das überhaupt bedeuten würde ... Würden Sie etwas mehr ausdenken? Und in 'A = x ['A']. Sum()', ist das erste A ein Objekt oder eine Zeichenkette? Wenn es eine Zeichenfolge ist, sollte es keine Anführungszeichen haben? Entschuldigung, wie gesagt, ziemlich durcheinander, ich hoffe, dass ich einen Sinn habe ... – Anne