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

时间:2014-08-07 15:13:06

标签: python pandas

鉴于此DataFrame

       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

......最好的方法是什么?

        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列可以在以后以不同的方式实现,或者如果可以通过整个过程完成,甚至更好。

1 个答案:

答案 0 :(得分:3)

您可以在对数据帧进行分组后使用agg功能。如果df是您的数据框,请使用此...

strJoin = lambda x:",".join(x.astype(str))     
df.groupby(level=[0,1]).agg({"r3":strJoin,"value":np.sum})