【发布时间】:2019-06-12 04:13:42
【问题描述】:
我试图弄清楚如何计算与上个月相比单位销售额变化最大的前 5 种产品。下面是我的一小部分数据,这里 Vendor_SKU 和 Order_Month 都是 pd.groupby 创建的索引。
amz = amz.groupby(['Vendor_SKU', 'Order_Month'])['Quantity'].sum()
Vendor_SKU Order_Month
DLEBL140 2018-11-01 17.0
2018-12-01 13.0
DLEBL90 2018-11-01 29.0
2018-12-01 39.0
DLEBR160 2018-11-01 16.0
2018-12-01 17.0
DLEG180 2018-11-01 30.0
2018-12-01 20.0
DLER150 2018-11-01 22.0
2018-12-01 23.0
DLEW110 2018-11-01 49.0
2018-12-01 41.0
DLEY130 2018-11-01 32.0
2018-12-01 20.0
我想要实现的是计算同一产品的所有差异并找到差异最大的那些。说我期待的结果是这样的:
Vendor_SKU
DLEBL140 -4.0
DLEBL90 10.0
DLEBR160 1.0
DLEG180 -10.0
DLER150 1.0
DLEW110 -8.0
DLEY130 -12.0
有了这个结果,我就可以找出前 5 个变化。有任何想法吗?谢谢!
感谢你们的快速回复,我在发布此问题之前尝试了 groupby.diff,但得到了一批没有任何索引的 NaN,只是一列带有少量随机数的 NaN。后来我意识到可能有些产品是在 11 月或 12 月才买的,就像下面的前两行一样,然后我没有得到两个月之间的差异,而是只用 diff() 得到了 NaN。
Vendor_SKU Order_Month Quantity
0 C142 2018-12-01 2.0
1 CC-18P 2018-11-01 5.0
2 DLEBL140 2018-11-01 17.0
3 DLEBL140 2018-12-01 13.0
4 DLEBL90 2018-11-01 29.0
5 DLEBL90 2018-12-01 39.0
我想我需要插入一些数量为 0 的行,然后尝试 diff()。
【问题讨论】:
-
只是猜测:
amz.groupby(['Vendor_SKU', 'Order_Month'])['Quantity'].diff() -
不会是
amz.groupby(['Vendor_SKU'])['Quantity'].diff()(如果你重置索引)? -
如果回答有帮助,别忘了accept。谢谢。
标签: python pandas dataframe group-by pandas-groupby