gpt4 book ai didi

python - 转置 Pandas 聚合函数中的列

转载 作者:行者123 更新时间:2023-11-30 22:14:35 25 4
gpt4 key购买 nike

我有一个带有 group by 的聚合函数来获取汇总值。我的数据集:

df=pd.DataFrame({"A":['a','a','a','a','a','a','b','b','b','b'],
"Sales":[2,3,7,1,4,3,5,6,9,10],
"Units":[12,2,2,33,6,2,4,8,3,5],
"Week":[1,2,2,1,2,1,1,2,2,1]})

在此基础上,我正在应用该函数:

def my_agg(x):
names = {
'Sales': x['Sales'].sum(),
'Units': x['Sales'].sum()
}

return pd.Series(names, index=['Sales','Units'])
dfA= df.groupby(['A','Week']).apply(my_agg)

这给了我输出:

    Sales  Units
A Week
a 1 6 6
2 14 14
b 1 15 15
2 15 15

我想将周转置为列。像这样:所需输出:

   Week 1              2      
A Sales Units Sales Units
a 6 6 14 14
b 15 15 15 15

另外,请建议输出 2:

           Sales         Units
A Week 1 2
a 6 14 6 14
b 15 15 15 15

最佳答案

unstackswaplevel

s=dfA.unstack()
s
Out[127]:
Sales Units
Week 1 2 1 2
A
a 6 14 6 14
b 15 15 15 15
s.swaplevel(0,1,axis=1).sort_index(level=0,axis=1)
Out[128]:
Week 1 2
Sales Units Sales Units
A
a 6 6 14 14
b 15 15 15 15

关于python - 转置 Pandas 聚合函数中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com