给出具有多级索引的熊猫Series
(或DataFrame
):
name month
A 2019-05 8
2019-06 8
2019-07 3
2019-08 4
2019-09 7
B 2019-06 10
2019-07 5
2019-08 23
2019-09 10
2019-10 13
如何在第二级汇总数据并将结果插入到数据中?
一个示例聚合为sum
,结果为:
name month
A sum 30 #added entry for A
2019-05 8
2019-06 8
2019-07 3
2019-08 4
2019-09 7
B sum 61 #added entry for B
2019-06 10
2019-07 5
2019-08 23
2019-09 10
2019-10 13
答案 0 :(得分:1)
这是使用unstack
s=df['count'].unstack()
s['sum']=s.sum(1)
s=s.stack()
name month
A 2019-05 8.0
2019-06 8.0
2019-07 3.0
2019-08 4.0
2019-09 7.0
sum 30.0
B 2019-06 10.0
2019-07 5.0
2019-08 23.0
2019-09 10.0
2019-10 13.0
sum 61.0
dtype: float64
答案 1 :(得分:1)
您只需要创建新的数据框和concat:
new_df = (df.groupby(level='name')
.sum()
.rename(columns={'count':'sum'})
.stack()
.to_frame(name='count')
)
pd.concat((new_df,df)).sort_index()
输出:
count
name
A 2019-05 8
2019-06 8
2019-07 3
2019-08 4
2019-09 7
sum 30
B 2019-06 10
2019-07 5
2019-08 23
2019-09 10
2019-10 13
sum 61