首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多维交叉表/枢轴

如何使用多维交叉表/枢轴
EN

Stack Overflow用户
提问于 2013-09-24 16:14:30
回答 1查看 2.6K关注 0票数 3

我尝试使用枢轴表在pivot_table函数的“value”字段中有多个值,但是它不起作用,所以我试着看看是否可以用交叉刀来完成它。这是我的密码

代码语言:javascript
复制
table=pandas.pivot_table(xl2, values='Applications', rows='Sub-Product',cols='Application Date',aggfunc=numpy.sum)

当我出口到csv的时候我会得到这个。

代码语言:javascript
复制
  Sub-Product   11/1/12 11/2/12 11/3/12
    GP            190    207      65
    GPF           1391   1430     1269

在python中,在将其转换为枢轴表后,dtype为float64(),并使用

代码语言:javascript
复制
<class 'pandas.core.frame.DataFrame'>

我最终想要的是csv中的输出:

代码语言:javascript
复制
Row Labels  11/1/2012   11/2/2012   11/3/2012
GP          
Acquisitions    164        168          54
Applications    190        207          65
GPF         
Acquisitions    1124       1142         992
Applications    1391       1430         1269

使用类似于此的代码(目前它不工作:/ ):

代码语言:javascript
复制
table=pd.pivot_table(xl2, values=['Acquisitions','Applications'], rows=['Sub-Product'],cols=['Application Date'],aggfunc=np.sum)

但我只能得到这个:

代码语言:javascript
复制
Sub-Product ('Applications', Timestamp('2012-11-01 00:00:00', tz=None)) ('Applications', Timestamp('2012-11-02 00:00:00', tz=None)) ('Applications', Timestamp('2012-11-03 00:00:00', tz=None))
GP  190 207 65
GPF 1391    1430    1269

对交叉表有什么帮助的想法吗?

这是csv文件中的数据。我不知道为什么我不能让他们进入适当的数据格式。

代码语言:javascript
复制
Application Date    Sub-Product Applications    Acquisitions
11/1/12             GP                1            1
11/1/12             GP                1            1
11/1/12             GP                1            1
11/1/12             GP                1            1
11/1/12             GPF               1            1
11/1/12             GPF               1            1
11/1/12             GPF               1            1
11/1/12             GPF               1            1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-26 04:11:44

看来你离你想去的地方很近了。table.stack(0)将将列索引的第一级移至行索引。

代码语言:javascript
复制
In [1]: import pandas as pd
In [2]: from StringIO import StringIO
In [3]: df = pd.read_csv(StringIO("""\
   ...: Application-Date    Sub-Product       Applications    Acquisitions
   ...: 11/1/12             GP                1            1
   ...: 11/1/12             GPF               1            1
   ...: 11/2/12             GP                1            1
   ...: 11/2/12             GP                1            1
   ...: 11/2/12             GPF               1            1
   ...: 11/2/12             GPF               1            1
   ...: 11/3/12             GP                1            1
   ...: 11/3/12             GP                1            1
   ...: 11/3/12             GP                1            1
   ...: 11/3/12             GPF               1            1
   ...: 11/3/12             GPF               1            1
   ...: 11/3/12             GPF               1            1
   ...: """), sep='\s+', parse_dates=[0])
In [4]: table = df.pivot_table(values=['Acquisitions', 'Applications'],
   ...:                        rows='Sub-Product',
   ...:                        cols='Application-Date',
   ...:                        aggfunc=sum)
In [5]: table
Out[5]: 
                  Applications                          Acquisitions                        
Application-Date    2012-11-01  2012-11-02  2012-11-03    2012-11-01  2012-11-02  2012-11-03
Sub-Product                                                                                 
GP                           1           2           3             1           2           3
GPF                          1           2           3             1           2           3
In [6]: table.stack(0)
Out[6]: 
Application-Date          2012-11-01  2012-11-02  2012-11-03
Sub-Product                                                 
GP          Applications           1           2           3
            Acquisitions           1           2           3
GPF         Applications           1           2           3
            Acquisitions           1           2           3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18986822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档