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

Tra*_*VOX 5 python pandas

鉴于此数据帧

       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
Run Code Online (Sandbox Code Playgroud)

......这样做的最佳方法是什么?

        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
Run Code Online (Sandbox Code Playgroud)

基本上,我试图将r3列压缩为逗号分隔的字符串。value如果有必要,可以稍后以不同的方式实现该列,或者如果可以通过整个过程完成,则更好。

ZJS*_*ZJS 5

您可以在对数据框进行分组后使用 agg 函数。如果df你的数据框使用这个...

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