This question already has answers here:
How to pivot a dataframe
                                
                                    (2个答案)
                                
                        
                                2年前关闭。
            
                    
我有一个很长的数据列,我想按组组织。

np.random.seed(0)
data = {'unit':['a']*5+['b']*5,\
    'day':list(range(5))+list(range(5)),\
    'data':np.random.random(10)*10}
df = pd.DataFrame.from_dict(data)


数据框如下所示:

  unit  day      data
0    a    0  5.488135
1    a    1  7.151894
2    a    2  6.027634
3    a    3  5.448832
4    a    4  4.236548
5    b    0  6.458941
6    b    1  4.375872
7    b    2  8.917730
8    b    3  9.636628
9    b    4  3.834415


我想按天将它整理成桌子:

  day    data a    data b
0   0  5.488135  6.458941
1   1  7.151894  4.375872
2   2  6.027634  8.917730
3   3  5.448832  9.636628
4   4  4.236548  3.834415


目的是便于按日绘制“数据a”和“数据b”(pd.DataFrame.to_clipboard并粘贴到Excel中)。

最佳答案

pivot

熊猫对此有一种方法:

res = df.pivot(index='day', columns='unit')

print(res)

          data
unit         a         b
day
0     5.488135  6.458941
1     7.151894  4.375872
2     6.027634  8.917730
3     5.448832  9.636628
4     4.236548  3.834415


您需要对elevate your index to a seriesflatten hierarchical columns做更多的工作,但是数据的结构是您想要的。

关于python - 将 Pandas 中的长圆柱排列成多个短圆柱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53490588/

10-12 00:13