Ho un dataframe come questo:Pandas GroupBy: Come ottenere un'unione di stringhe
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 !
Calling
In [10]: print df.groupby("A")["B"].sum()
tornerà
A
1 1.615586
2 0.421821
3 0.463468
4 0.643961
Ora vorrei fare "lo stesso" per la colonna "C". Poiché quella colonna contiene stringhe, sum() non funziona (sebbene si possa pensare che concatenerebbe le stringhe). Quello che mi piacerebbe davvero vedere è una lista o un insieme di stringhe per ogni gruppo, vale a dire
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
ho cercato di trovare il modo per farlo.
Series.unique() (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html) non funziona, anche se
df.groupby("A")["B"]
è un
pandas.core.groupby.SeriesGroupBy object
quindi speravo qualsiasi metodo della serie avrebbe funzionato. Qualche idea?
Grazie Jeff. Come potrei applicare anche diverse funzioni su più colonne in una volta, ad es. somma sulla colonna "B" e impostata sulla colonna "C"? – Anne
aggiunto una sezione per farlo che – Jeff
Grazie Jeff!Non l'ho ancora provato ma vorrebbe capire la logica dietro. Stai creando un dizionario di serie e lo trasformi in una serie? Non riesco a convincere il mio cervello (certamente scombussolato) su cosa significherebbe ... Ti dispiacerebbe elaborare un po 'di più? E in 'A = x ['A']. Sum()', è il primo A un oggetto o una stringa? Se è una stringa, non dovrebbe avere virgolette in giro? Scusa, come ho detto, piuttosto abbattuto, spero di avere un senso ... – Anne