J'ai un dataframe comme celui-ci:
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 !
Appel
In [10]: print df.groupby("A")["B"].sum()
reviendra
A
1 1.615586
2 0.421821
3 0.463468
4 0.643961
Maintenant, je voudrais faire "la même chose" pour la colonne "C". Étant donné que cette colonne contient des chaînes, sum () ne fonctionne pas (bien que vous puissiez penser que cela concaténerait les chaînes). Ce que j'aimerais vraiment voir, c'est une liste ou un ensemble de chaînes pour chaque groupe, c'est-à-dire
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
J'ai essayé de trouver des moyens de le faire.
Series.unique () ( http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html ) ne fonctionne pas, bien que
df.groupby("A")["B"]
est un
pandas.core.groupby.SeriesGroupBy object
donc j'espérais que n'importe quelle méthode de série fonctionnerait. Des idées?
apply
etlambda
s. Je suis venu ici en me demandant pourquoi enpandas
fait concat et ne pas renvoyer une erreur sur la sommation des chaînes.