Python 熊猫的多指标旋转

Python 熊猫的多指标旋转,python,pandas,pivot,Python,Pandas,Pivot,考虑以下数据帧: item_id hour when date quantity 110 0YrKNYeEoa 1 before 2015-01-26 247286 111 0UMNiXI7op 1 before 2015-01-26 602001 112 0QBtIMN3AH 1 before 2015-01-26 981630 113 0GuKXLi

考虑以下数据帧:

         item_id  hour    when        date      quantity
110   0YrKNYeEoa     1  before  2015-01-26        247286
111   0UMNiXI7op     1  before  2015-01-26        602001
112   0QBtIMN3AH     1  before  2015-01-26        981630
113   0GuKXLiWyV     1  after   2015-01-26       2203913
114   0SoFbjvXTs     1  after   2015-01-26        660183
115   0UkT257SXj     1  before  2015-01-26        689332
116   0RPjXnkiGx     1  after   2015-01-26        283090
117   0FhJ9RGsLT     1  before  2015-01-26       2024256
118   0FhGJ4MFlg     1  before  2015-01-26         74524
119   0FQhHZRXhB     1  before  2015-01-26             0
120   0FsSdJQlTB     1  before  2015-01-26             0
121   0FrrAzTFHE     1  before  2015-01-26             0
122   0FfkgBdMHi     1  before  2015-01-26             0
123   0FOnJNexRn     1  before  2015-01-26             0
124   0FcWhIdBds     1  before  2015-01-26             0
125   0F2lr0cL9t     1  before  2015-01-26       1787659
我想将其旋转,以便将桌子安排为:

Index                     before           after
(item_id, hour, date)   quantityB      quantityA
当我尝试使用:

df.pivot(index=['item_id', 'hour', 'date'], columns='when', values='quanty')
我得到:

ValueError: Wrong number of items passed 8143, placement implies 3

为什么?

如果我理解你的问题,我想你想要的是
pandas.pivot\u table(…)
,你可以这样使用:

table = pd.pivot_table(df, index=['item_id', 'hour', 'date'], columns='when', values='quantity')
其中包含一个示例数据帧

    item_id  hour  when      date     quantity
0       a     1  before  2015-01-26        25
1       b     1  before  2015-01-26        14
2       a     1   after  2015-01-26         4
3       d     1  before  2015-01-26        43
4       b     1   after  2015-01-26        30
5       d     1   after  2015-01-26        12
产生

when                     after  before
item_id hour date                     
a       1    2015-01-26      4      25
b       1    2015-01-26     30      14
d       1    2015-01-26     12      43

哇!好的,我刚刚意识到
pivot
pivot\u table
是两种不同的方法。@AmelioVazquez Reina这个解决方案回答了你的问题吗?是的——谢谢,我正在阅读这两种方法并在本地进行测试。@AmelioVazquez Reina没问题。很乐意帮忙。