python - 查找销售年份之间的差异
问题描述
我有一个分析销售的数据。我取得了一些进展,这是我做的最后一部分,显示了每年(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
价值的商店并将其分开,但我很想检查是否有更好的选择。
解决方案
要获得 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)
推荐阅读
- macos - 有没有办法不显示 SwiftUI 生命周期 macOS 应用程序的窗口?
- python - 通过 lambda 定义的函数列表的意外行为
- python - 过滤掉前一个条目的 30 个周期内的值
- flutter - 可以在 android 和 ios 的颤振应用程序上删除启动画面
- python - 创建包含 0 或 1 的 N 个元素加起来指定数字 X 的列表
- google-cloud-platform - 使用 org.apache.spark.sql.json 在 Spark sql 中创建临时视图
- blazor - Blazor - 如何为超出该数据类型最大值的值自定义 InputNumber 验证消息?
- python - 使用语音识别库中的监听函数时出错
- python - 即使在四舍五入后也无法获得分类报告
- kubernetes - K8S cert-manager 创建 acme 挑战 pod 时出错