为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫群:如何获得字符串的结合

熊猫群:如何获得字符串的结合

慕桂英3389331 2019-07-11 20:32:58
熊猫群:如何获得字符串的结合我有这样的数据:   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现在我想对“C”栏做“同样”。因为该列包含字符串,SUM()无法工作(尽管您可能认为它会连接字符串)。我真正希望看到的是每个组的字符串列表或集合,即A1    {This, string}2    {is, !}3    {a}4    {random}我一直在设法做到这一点。Series.Unique()(http:/andas.pydata.org/大熊猫-docs/稳定/生成/panass.eries.unifie.html)不起作用,尽管df.groupby("A")["B"]是pandas.core.groupby.SeriesGroupBy object所以我希望任何系列赛方法都能奏效。有什么想法吗?
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

您可以使用apply方法将任意函数应用于分组数据。所以如果你想要一套,申请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

如果您想要其他的东西,只需编写一个函数来做您想要的,然后apply那,那个。


查看完整回答
反对 回复 2019-07-11
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

您可以使用aggregate(或agg)函数来连接这些值。(未经测试的代码)

df.groupby('A')['B'].agg(lambda col: ''.join(col))


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信