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没问题。很乐意帮忙。