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?
applyilambdas. Przyszedłem tutaj, zastanawiając się, dlaczegopandaswłaściwie konkatuje i nie zwraca błędu podczas sumowania ciągów.