gpt4 book ai didi

python - Pandas 中的多索引旋转

转载 作者:太空狗 更新时间:2023-10-29 17:16:58 26 4
gpt4 key购买 nike

考虑以下数据框:

         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_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

关于python - Pandas 中的多索引旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com