鉴于此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
列可以在以后以不同的方式实现,或者如果可以通过整个过程完成,甚至更好。
答案 0 :(得分:3)
您可以在对数据帧进行分组后使用agg功能。如果df
是您的数据框,请使用此...
strJoin = lambda x:",".join(x.astype(str))
df.groupby(level=[0,1]).agg({"r3":strJoin,"value":np.sum})