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