【发布时间】:2022-11-17 04:50:34
【问题描述】:
我希望创建基于不同功能/类别特有的日期范围求和的变量,以在 Python 中自动执行当前的 Excel 任务。它类似于 Excel 中的 SUMIF,但不同变量的日期范围不同。我会尝试重新创建一个类似的情况,因为我无法共享确切的数据。目前,我有一个销售数据框,其中包含每周按地区划分的销售额,如下所示:
| Week | Area | Sales |
|---|---|---|
| 08/02/2019 | London | 200 |
| 08/02/2019 | Scotland | 150 |
| 15/02/2019 | London | 100 |
| 15/02/2019 | Scotland | 120 |
| 22/02/2019 | London | 50 |
| 22/02/2019 | Scotland | 20 |
我想合并日期是否属于产品的销售期,所以说我有另一个这样的数据框:
| Product | Sale Start Week | Sale End Week |
|---|---|---|
| Boots | 08/02/2019 | 15/02/2019 |
| Accessories | 15/02/2019 | 22/02/2019 |
如果日期在为每个产品指定的日期范围内,我想创建一些总和。例如,对于下面的 Boots,如果 Sales 中的周数在 Sales Periods 日期范围内,则对 Sales 求和:
| Area | Boots | Accessories |
|---|---|---|
| London | 300 | 150 |
| Scotland | 270 | 140 |
我试过 groupby 和数据透视表,但我不确定如何将销售日期过滤器合并到其中。目前,销售期数据框和销售数据框是分开的。
这就是我所拥有的几乎就在那里的数据透视代码:
test = pd.pivot_table(df,index=['Area','Week'],columns=sales_period_df['Product'],values=['Sales'],aggfunc=np.sum)
但这不包括销售期间的过滤,我不确定如何合并它。非常感谢您的建议,在此先感谢!
【问题讨论】:
-
总销售额 (860) 超过第一个 DF 中的销售额 (640)。
-
能否请您描述一下周期的内在逻辑?不同产品的周期可以重叠吗?如果是这样,那么销售的本质是什么?如果不是,那么所有期间是否都涵盖了 Sales 数据框中的时间?
-
这是我尝试翻译的示例,如果让您感到困惑,我们深表歉意。期间可以重叠。这个想法是计算每个销售期间有多少销售额,所有期间都涵盖完整销售数据框中的周数。主要目的是按给定范围内的周数求和。我知道如何为一两个人做这件事,但考虑到我有很多产品,所以有很多不同的日期(但都在销售数据框的范围内)@Vitalizzare
标签: python pandas data-manipulation sumifs