重新排列python pandas数据帧

时间:2013-01-28 23:58:44

标签: python dataframe pandas

我有一个像下面这样的pandas数据框

   mp  me        rt                                                         
0  0   1   1.987366                                                         
1  1   1   1.769593                                                         
2  2   1   1.416274                                                         
3  3   1   1.650428                                                         
4  4   1   1.882780                                                         
5  0   2   1.955086                                                         
6  1   2   1.729387                                                         
7  2   2   1.490797                                                         
8  3   2   1.546333                                                         
9  4   2   1.933006                 

我想生成一个新的数据帧,如下面的

   mp    me=1       me=2                                                    
0  0   1.987366    1.955086                                                 
1  1   1.769593    1.729387                                                 
2  2   1.416274    1.490797                                                 
3  3   1.650428    1.546333                                                 
4  4   1.882780    1.933006                                                 

我尝试使用for循环但不成功。

for j in range(1,3):
    f[str(j)] = pd.DataFrame(a[a['me']==j]['rt'])

知道如何有效地做到这一点吗?

感谢。 丹

1 个答案:

答案 0 :(得分:6)

In [6]: df.pivot_table(values='rt', rows='mp', cols='me', aggfunc=sum)
Out[6]: 
me         1         2
mp                    
0   1.987366  1.955086
1   1.769593  1.729387
2   1.416274  1.490797
3   1.650428  1.546333
4   1.882780  1.933006