我有這樣一個數據幀:熊貓GROUPBY:如何得到字符串的工會
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 !
調用
In [10]: print df.groupby("A")["B"].sum()
將返回
A
1 1.615586
2 0.421821
3 0.463468
4 0.643961
現在我想這樣做「C」欄的「相同」。由於該列包含字符串,sum()不起作用(儘管您可能認爲它會連接字符串)。我真的想看到的是一個列表或設置字符串各組,即
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
我一直在想辦法做到這一點。
Series.unique()(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html)不工作,雖然
df.groupby("A")["B"]
是
pandas.core.groupby.SeriesGroupBy object
,所以我希望任何系列的方法是可行的。有任何想法嗎?
感謝傑夫。我怎樣才能一次性在多個列上應用不同的功能,例如求和列「B」並設置在「C」列? – Anne
增加了一個部分來做到這一點 – Jeff
謝謝傑夫!還沒有放棄它,但想了解它背後的邏輯。你正在創建一個系列字典,並把它變成一個系列?無法讓我的(被矇蔽的)大腦圍繞甚至意味着什麼......你是否介意再詳述一下?並且在'A = x ['A']。sum()'中,是第一個A對象還是字符串?如果它是一個字符串,它不應該有引號嗎?對不起,正如我所說的,非常疲憊,我希望我的意思是... – Anne