首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据透视表Pandas

数据透视表Pandas
EN

Stack Overflow用户
提问于 2017-02-18 20:53:14
回答 2查看 281关注 0票数 0

我的问题是编辑每个类别的小计并显示合计,然后编辑"All“列,但我不能这样做。请告诉我如何继续。prets_preview:http://www.cjoint.com/c/GBijO4uZYjt和issues_out:http://www.cjoint.com/c/GBsm0IXIILE的链接文件感谢您的帮助。

代码语言:javascript
复制
In [1]: import pandas as pd

In [2]: import numpy as np

In [3]: from pandas import DataFrame

In [4]: issues=pd.read_table('prets_preview.csv')

In [5]: site={'BUS1A' : 'Zèbre', 'MED0A' : 'Collectivités'}

In [6]: issues ['localisation'] = issues['localisation'].map(site)

In [7]: issues ['localisation'] = issues['localisation'].fillna('Médiathèque')

In [8]: resultat = issues ['id_exemplaire'].groupby([issues['localisation'],issues.ccode, issues['support']]).count()

In [9]: table = pd.pivot_table(issues,values=['id_exemplaire'], index=['locali sation'], columns =['support'], aggfunc =np.sum,margins = True)

In [10]: resultat = table.stack('support')

In [11]: resultat.to_csv('issues_out.csv')

In [12]: resultat = issues['id_exemplaire'].groupby(issues['localisation'])
    .count()

In [13]: resultat = issues['id_exemplaire'].groupby([issues['localisation'], is ues['support'], issues['ccode']]).count()


In [16]: table = pd.pivot_table ( issues, values=['id_exemplaire'], index=['localisation'], columns=['support'], aggfunc= np.sum, margins = True)

我需要更清楚地显示小计,并编辑列“全部”,但我不知道该怎么做。

代码语言:javascript
复制
                                        **id_exemplaire
localisation  support
Collectivités All                            300390.0
              DVD                                 0.0
              Disque compact                      0.0
              Disque microsillon                  0.0
              Livre                          300390.0
              Livre en gros caractères            0.0
              Livre sonore                        0.0
              Périodique                          0.0
Médiathèque   All                          23610694.0
              DVD                           3710341.0
              Disque compact                1684356.0
              Disque microsillon             338976.0
              Livre                        15731162.0
              Livre en gros caractères       514064.0
              Livre sonore                   595185.0
              Périodique                    1036610.0
Zèbre         All                            800167.0
              DVD                            192799.0
              Disque compact                      0.0
              Disque microsillon                  0.0
              Livre                          607368.0
              Livre en gros caractères            0.0
              Livre sonore                        0.0
              Périodique                          0.0
All           All                          24711251.0
              DVD                           3903140.0
              Disque compact                1684356.0
              Disque microsillon             338976.0
              Livre                        16638920.0
              Livre en gros caractères       514064.0
              Livre sonore                   595185.0
              Périodique                    1036610.0**
EN

回答 2

Stack Overflow用户

发布于 2017-02-18 23:27:19

您可以使用pandas.melt函数对数据帧进行整形,其中id_varslocalisationvalue_varssupport中的所有变量

这可能会对pandas.melt有帮助

票数 0
EN

Stack Overflow用户

发布于 2017-02-19 04:08:02

只需使用pandas.pivot_table的margins_name参数来重命名默认的All标签。

代码语言:javascript
复制
table = pd.pivot_table(issues, 
                       values = ['id_exemplaire'],
                       index = ['localisation'],
                       columns = ['support'],
                       aggfunc = np.sum,
                       margins = True,
                       margins_name = 'Total')

resultat = table.stack('support')
print(resultat)

输出(使用已发布的链接数据)

代码语言:javascript
复制
                                       id_exemplaire
localisation support                                
BUS1A        DVD                            192799.0
             Livre                          607368.0
             Total                          800167.0
MED0A        Livre                          300390.0
             Total                          300390.0
MED1A        DVD                           3710341.0
             Livre                         8242130.0
             Livre en gros caractères       514064.0
             Périodique                     862281.0
             Total                        13328816.0
MED2A        Livre                         7489032.0
             Livre sonore                   595185.0
             Périodique                     174329.0
             Total                         8258546.0
MED3A        Disque compact                1462267.0
             Disque microsillon             338976.0
             Total                         1801243.0
MED3C        Disque compact                 222089.0
             Total                          222089.0
Total        DVD                           3903140.0
             Disque compact                1684356.0
             Disque microsillon             338976.0
             Livre                        16638920.0
             Livre en gros caractères       514064.0
             Livre sonore                   595185.0
             Périodique                    1036610.0
             Total                        24711251.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42315375

复制
相关文章

相似问题

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