Mam taką ramkę danych:
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 !
Powołanie
In [10]: print df.groupby("A")["B"].sum()
wróci
A
1 1.615586
2 0.421821
3 0.463468
4 0.643961
Teraz chciałbym zrobić „to samo” dla kolumny „C”. Ponieważ ta kolumna zawiera ciągi, sum () nie działa (chociaż możesz pomyśleć, że połączy łańcuchy). To, co naprawdę chciałbym zobaczyć, to lista lub zestaw ciągów dla każdej grupy, tj
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
Próbowałem znaleźć sposób, aby to zrobić.
Series.unique () ( http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html ) nie działa, chociaż
df.groupby("A")["B"]
jest
pandas.core.groupby.SeriesGroupBy object
więc miałem nadzieję, że jakakolwiek metoda serii zadziała. Jakieś pomysły?
apply
ilambda
s. Przyszedłem tutaj, zastanawiając się, dlaczegopandas
właściwie konkatuje i nie zwraca błędu podczas sumowania ciągów.