我有一个矩阵,在pandas.DataFrame
中是这样的:
Store Sales year month day
0 1 5263 2015 7 31
1 1 5020 2015 7 30
2 1 4782 2015 7 29
3 2 5011 2015 7 28
4 2 6102 2015 7 27
[986159 rows x 5 columns]
在我做了一些转换之后,我得到了每个商店的总销售额:
train['StoreTotalSales'] = train.groupby('Store')['Sales'].transform('sum')
但是现在我需要遍历train.groupby(['Store', 'day', 'month'])
的每一行,然后除以groupby的每一行的Sales
图,再除以StoreTotalSales
。你知道吗
我试过以下方法:
train['PercentSales'] = train.groupby(['Store','day', 'month'])['Sales'].transform(lambda x: x /float(x.sum()))
但是对于新的PercentSales
列返回所有1:
Store Sales year month day StoreTotalSales PercentSales
0 1 5263 2015 7 31 26178 1
1 1 5020 2015 7 30 26178 1
2 1 4782 2015 7 29 26178 1
3 2 5011 2015 7 28 12357 1
4 2 6102 2015 7 27 12357 1
但这应该是:
0 5263/26178
1 5020/26178
2 4782/26178
3 5011/12357
4 6012/12357
为什么另一个
groupby
的复杂性?如果只想将列除以组和,只需执行以下操作:或等效地,遵循您的方法:
如果遇到其他问题,请告诉我。你知道吗
相关问题 更多 >
编程相关推荐