2017-10-11 38 views
2

我有一个多指标(ID,日期,LID)一个数据帧和列从0到N,看起来像这样:数据帧串连列

      0 1 2 3 4 
ID  Date  LID 
00112 11-02-2014 I 0 1 5 6 7 
00112 11-02-2014 II 2 4 5 3 4 
00112 30-07-2015 I 5 7 1 1 2 
00112 30-07-2015 II 3 2 8 7 1 

我想通过ID和日期组数据帧并连接所有的列在同一行,使得它看起来像这样:

     0 1 2 3 4 5 6 7 8 9 
ID  Date  
00112 11-02-2014 0 1 5 6 7 2 4 5 3 4 
00112 30-07-2015 5 7 1 1 2 3 2 8 7 1 

回答

2

使用unstack + sort_index

df = df.unstack().sort_index(axis=1, level=1) 
#for new columns names 
df.columns = np.arange(len(df.columns)) 
print (df) 
       0 1 2 3 4 5 6 7 8 9 
ID Date          
112 11-02-2014 0 1 5 6 7 2 4 5 3 4 
    30-07-2015 5 7 1 1 2 3 2 8 7 1 
3

使用pd.concatpd.DataFrame.xs

pd.concat(
    [df.xs(x, level=2) for x in df.index.levels[2]], 
    axis=1, ignore_index=True 
) 

       0 1 2 3 4 5 6 7 8 9 
ID Date          
112 11-02-2014 0 1 5 6 7 2 4 5 3 4 
    30-07-2015 5 7 1 1 2 3 2 8 7 1