基于pandas datafraem中的键连接行

时间:2016-11-11 15:12:36

标签: python pandas dataframe

我有一个pandas数据帧,我想基于key连接值 例如,

c1      c2 c3  c4  c5
14206   3.5 0   0   0
14206   0   0   0   0
14206   0   0   0   0
14206   0   0   0   0

希望它像......

14206 3.5   0   0   0 0 0   0   0 0 0   0   0 0 0   0   0

我尝试了df.groupBy(id),但无法弄清楚接下来要做什么

1 个答案:

答案 0 :(得分:0)

这是一种方法。按列0分组,过滤以仅保留数据列,然后将它们全部取消堆叠并将它们转换为您想要的行而不是列:

df.groupby('c1')[['c2', 'c3', 'c4', 'c5']].apply(lambda g: g.unstack().T)
Out[16]: 
        c2                  c3                  c4                  c5       \
         0    1    2    3    0    1    2    3    0    1    2    3    0    1   
c1                                                                            
14206  3.5  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0   


         2    3  
c1               
14206  0.0  0.0