Pandas Pivot 创建 NaN

Sun*_*oiz 5 python pandas

鉴于此示例数据框,

         Cents      Date
MN                                         
Shop        0.03  01012019
Shop        0.22  01012019
Shop        0.12  01012019
Shop        0.08  02012019
Shop        0.02  02012019
Shop        0.02  02012019
Shop        0.02  03012019
Shop        0.09  03012019
Shop        0.11  03012019
Shop        0.02  04012019
Shop        0.03  04012019
Shop        0.04  04012019
Run Code Online (Sandbox Code Playgroud)

我想重塑我的数据框成为

在此处输入图片说明

到目前为止我尝试过的,

  1. 删除原始样本数据帧的索引

    df1 = df.reset_index(drop=True)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 旋转示例数据框,

    df1.pivot(index=None, columns='Date', values='Cents')
    
    Run Code Online (Sandbox Code Playgroud)

旋转后我无法获得想要的结果,这就是我得到的

在此处输入图片说明

有人可以告诉我为什么会这样吗?我很确定它与数据透视表如何与我的数据框一起工作有关(也许我需要一个在这种情况下我不能拥有的唯一索引?)。如果您能让我知道我应该如何继续,我将不胜感激。

谢谢你。

WeN*_*Ben 5

您可能需要一个groupby+cumcount创建一个额外的密钥

Yourdf= df.assign(key=df.groupby('Date').cumcount()).pivot(index='key',columns='Date',values='Cents')
Yourdf
Out[37]: 
Date  1012019  2012019  3012019  4012019
key                                     
0        0.03     0.08     0.02     0.02
1        0.22     0.02     0.09     0.03
2        0.12     0.02     0.11     0.04
Run Code Online (Sandbox Code Playgroud)