行数据到列数据

时间:2019-04-16 02:01:55

标签: pandas csv

我是python的新手。我的数据看起来像这样:

ID      Annotation  X   Y
ID_1    first       767 942
ID_1    last        768 943
ID_2    first       769 944
ID_2    last        770 945

我想使新列的第一个XY和最后一个XY。我的预期结果:

ID      X_first     Y_first     X_last      Y_last
ID_1    767         942         768         943
ID_2    769         944         770         945

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我正在使用unstack解决pivot问题

s=df.set_index(['ID','Annotation']).unstack()
s.columns=s.columns.map('_'.join) # columns flatten
s.reset_index(inplace=True)
s
Out[353]: 
     ID  X_first  X_last  Y_first  Y_last
0  ID_1      767     768      942     943
1  ID_2      769     770      944     945