熊猫groupby:如何获得字符串的并集

熊猫groupby:如何获得字符串的并集,第1张

熊猫groupby:如何获得字符串的并集
In [4]: df = read_csv(StringIO(data),sep='s+')In [5]: dfOut[5]:    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 [6]: df.dtypesOut[6]: A      int64B    float64C     objectdtype: object

应用自己的函数时,不会自动排除非数字列。这会慢一些,但比应用

.sum()
groupby

In [8]: df.groupby('A').apply(lambda x: x.sum())Out[8]:    A         BCA   1  2  1.615586  Thisstring2  4  0.421821         is!3  3  0.463468a4  4  0.643961      random

sum
默认情况下串联

In [9]: df.groupby('A')['C'].apply(lambda x: x.sum())Out[9]: A1    Thisstring2is!3  a4        randomdtype: object

你几乎可以做你想做的

In [11]: df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x))Out[11]: A1    {This, string}2{is, !}3    {a}4          {random}dtype: object

在整个框架上一次执行一次。关键是要返回一个

Series

def f(x):     return Series(dict(A = x['A'].sum(),   B = x['B'].sum(),   C = "{%s}" % ', '.join(x['C'])))In [14]: df.groupby('A').apply(f)Out[14]:    A         B    CA       1  2  1.615586  {This, string}2  4  0.421821         {is, !}3  3  0.463468  {a}4  4  0.643961        {random}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5642655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存