熊貓群:如何獲得字符串的結(jié)合我有這樣的數(shù)據(jù): A B C0 1 0.749065 This1 2 0.301084 is2 3 0.463468
a3 4 0.643961 random4 1 0.866521 string5 2 0.120737 !呼叫In [10]: print df.groupby("A")["B"].sum()會回來A1 1.6155862 0.4218213 0.4634684 0.643961現(xiàn)在我想對“C”欄做“同樣”。因為該列包含字符串,SUM()無法工作(盡管您可能認為它會連接字符串)。我真正希望看到的是每個組的字符串列表或集合,即A1 {This, string}2 {is, !}3 {a}4 {random}我一直在設(shè)法做到這一點。Series.Unique()(http:/andas.pydata.org/大熊貓-docs/穩(wěn)定/生成/panass.eries.unifie.html)不起作用,盡管df.groupby("A")["B"]是pandas.core.groupby.SeriesGroupBy object所以我希望任何系列賽方法都能奏效。有什么想法嗎?
3 回答

慕姐4208626
TA貢獻1852條經(jīng)驗 獲得超7個贊
您可以使用apply方法將任意函數(shù)應用于分組數(shù)據(jù)。所以如果你想要一套,申請set..如果你想要一份清單,申請list.
>>> d
A B
0 1 This
1 2 is
2 3 a
3 4 random
4 1 string
5 2 !
>>> d.groupby('A')['B'].apply(list)
A
1 [This, string]
2 [is, !]
3 [a]
4 [random]
dtype: object
如果您想要其他的東西,只需編寫一個函數(shù)來做您想要的,然后apply那,那個。

開心每一天1111
TA貢獻1836條經(jīng)驗 獲得超13個贊
aggregate
agg
df.groupby('A')['B'].agg(lambda col: ''.join(col))
添加回答
舉報
0/150
提交
取消