我有这样一个数据帧:熊猫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