将Pandas DataFrame行合并为一个列中的字符串

5

给定这个数据框

       r3  value
r1 r2           
1  2    3      1
   2    4      1
   3    2      1
   3    4      1
   4    2      1
   4    3      1
2  1    3      1
   1    4      1
   3    1      1
   3    4      1
   4    1      1
   4    3      1

怎样才能做到最好呢?

在IT技术方面。
        r3     value
r1 r2           
1  2    3,4    2
   3    2,4    2
   4    2,3    2
2  1    3,4    2
   3    1,4    2
   4    1,3    2

基本上,我试图将r3列压缩成逗号分隔的字符串。如果必要的话,可以通过其他方式获得value列,或者如果可以通过整个过程完成,那就更好了。


所以你想按 (r1, r2) 进行分组,其中 r3 变成所有单独的 r3 的串联,而 value 则变成所有单独的 value 的总和?(如果你的数据在分组时有不同数量的行,并且使用某些值而不是 1,则可以更明显地表现出这一点)。 - holdenweb
是的,r3将会是一个连接。值图基本上是一个“计数”列...因此它将是从r3列连接的行数。 - TravisVOX
1个回答

5
你可以在将数据框分组后使用agg函数。如果df是你的数据框,请使用以下代码...
strJoin = lambda x:",".join(x.astype(str))     
df.groupby(level=[0,1]).agg({"r3":strJoin,"value":np.sum})

这太完美了。谢谢你。作为一名兼职、业余的程序员,这将会花费我很长时间。非常感谢。 - TravisVOX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接