我有一个分析销售的数据。我取得了一些进展,这是我做的最后一部分,显示了每个商店每年的销售总额(2016-2017-2018)。
Store_Key Year count Total_Sales
0 5.0 2016 28 6150.0
1 5.0 2017 39 8350.0
2 5.0 2018 27 5150.0
3 7.0 2016 3664 105370.0
4 7.0 2017 3736 116334.0
5 7.0 2018 3863 99375.0
6 10.0 2016 3930 79904.0
7 10.0 2017 3981 91227.0
8 10.0 2018 4432 97226.0
9 11.0 2016 4084 91156.0
10 11.0 2017 4220 99565.0
11 11.0 2018 4735 113584.0
12 16.0 2016 4257 135655.0
13 16.0 2017 4422 144725.0
14 16.0 2018 4630 133820.0
我希望看到每家商店的年销售额差异。所以我使用了数据透视表,每年都会显示差异列。
Store_Key 2016 2017 2018
5.0 6150.0 8350.0 5150.0
7.0 105370.0 116334.0 99375.0
10.0 79904.0 91227.0 97226.0
11.0 91156.0 99565.0 113584.0
16.0 135655.0 144725.0 133820.0
18.0 237809.0 245645.0 88167.0
20.0 110225.0 131999.0 83302.0
24.0 94087.0 101062.0 108888.0
如果商店不变,我会很快发现使用不同列之间的差异,但不幸的是每年都有很多新商店在建立和关闭。
所以我的问题是:有没有办法在商店中展示新商店和关闭商店?
我可以找到NULL
值的商店并将其分开,但我想知道是否有更好的选择。
答案 0 :(得分:0)
要获得2017年和2016年之间的差异,您可以:
df['evolution'] = df['2017'] - df['2016']
如果您想删除至少有一个NaN值的行,您可以删除这些行:
df.dropna(axis=0, how='any', inplace=False)
如果你有0而不是NaN,你可以这样做:
import numpy as np
df.replace(0, np.nan)