Pandas 中的多索引旋转 [英] Multi-index pivoting in Pandas

查看:26
本文介绍了Pandas 中的多索引旋转的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑以下数据框:

         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

我想旋转它以使表格排列为:

I would like to pivot it to get the table arranged as:

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(...) ,你可以像这样使用所以:

If I understand what you are asking I think what you want is pandas.pivot_table(...) which you can use like so:

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

这篇关于Pandas 中的多索引旋转的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆