我目前有一个数据文件,它如下所示:
df:
store item sales
0 1 1 10
1 1 2 20
2 2 1 10
3 3 2 20
4 4 3 10
5 3 4 15
...我想查看每一家商店每件商品的总销售额,所以我使用pivot表来创建这个表:
p_table = pd.pivot_table(df, index='store', values='sales', columns='item', aggfunc=np.sum)它提供了如下内容:
sales
item 1 2 3 4
store
1 20 30 10 8
2 10 14 12 13
3 1 23 29 10
....我现在要做的是应用一些功能,以便每个项目的总销售额代表特定商店的总销售额的百分比。例如,store1项目1的值将变成:
1. 20/(20+30+10+8) * 100我在为堆叠的数据文件而挣扎。如有任何建议,将不胜感激。
谢谢
发布于 2018-09-24 05:54:48
我认为需要除以div与Series由sum创建
print (p_table)
item 1 2 3 4
store
1 10.0 20.0 NaN NaN
2 10.0 NaN NaN NaN
3 NaN 20.0 NaN 15.0
4 NaN NaN 10.0 NaN
print (p_table.sum(axis=1))
store
1 30.0
2 10.0
3 35.0
4 10.0
dtype: float64
out = p_table.div(p_table.sum(axis=1), axis=0)
print (out)
item 1 2 3 4
store
1 0.333333 0.666667 NaN NaN
2 1.000000 NaN NaN NaN
3 NaN 0.571429 NaN 0.428571
4 NaN NaN 1.0 NaNhttps://stackoverflow.com/questions/52473372
复制相似问题