Python使用数据透视图重塑数据框。索引未出现

时间:2018-08-13 15:00:49

标签: python pivot

我正在尝试使用数据透视功能重塑数据框。我希望“名称”是索引,值的列为“月”和“总和”。但是,当我运行下面的代码时,我的索引没有出现在输出中

import pandas as pd

df = {'name': ['apples', 'orange', 'apples',  'banana', 'strawberry'],

'month': ['jan18', 'jan18', 'feb18', 'feb18','jan18'],

'sum': [56, 75, 32, 98, 12]}

df = pd.DataFrame(df)

df = df.pivot_table(index=['name'], columns=['month'], values=['sum'], 
aggfunc=[np.sum], margins=True)

退出:

sum sum sum
sum sum sum
feb-18 jan-18 All
 32     56      89
  .......

我想要以下内容:

       feb-18 jan-18
apples  32     56
orange
  .......
All .....

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['apples', 'orange', 'apples',  'banana', 'strawberry'],
                   'month': ['jan18', 'jan18', 'feb18', 'feb18','jan18'],
                   'sum': [56, 75, 32, 98, 12]})


print(df.pivot_table(index='name', columns='month', values='sum', aggfunc=np.sum, fill_value=0, margins=True))

打印输出:

month       feb18  jan18  All
name                         
apples         32     56   88
banana         98      0   98
orange          0     75   75
strawberry      0     12   12
All           130    143  273

如果要保存为CSV:

pivoted.to_csv(path_or_buf='d:/work/pivoted.csv')

这将产生一个包含以下内容的文件:

name,feb18,jan18,All
apples,32,56,88
banana,98,0,98
orange,0,75,75
strawberry,0,12,12
All,130,143,273