对于我正在进行的项目,我需要计算商店产品的平均价格。每当商店更改产品的价格时,都会向数据集添加新条目。如果商店停止(暂时或永久)销售产品,则会输入时间戳和价格值-1。例如:Pandas中时间相关数据集的平均值,缺失值
timestamp shop product price
2014-01-01 10:07:32 E 4 19.99
2014-01-01 10:07:32 F 5 54.00
2014-01-02 14:41:12 A 1 28.00
2014-01-02 14:41:12 D 3 249.99
2014-01-02 15:12:38 C 1 29.99
2014-01-03 14:05:12 B 2 43.00
2014-01-05 12:21:57 F 5 49.99
2014-01-06 23:55:32 F 5 -1
2014-01-07 03:05:12 B 2 39.99
2014-01-07 11:24:49 D 3 -1
2014-01-08 11:35:33 C 2 40.99
2014-01-08 16:28:07 F 5 65.00
2014-01-12 21:41:04 E 3 199.00
测试用例:
- 店铺:阿具有在该时间段为产品1没有价格条目来计算
- B铺具有周期 内的产品2交换机的价格
- 在期间开始销售商品2的商店C,并且通过销售商品1全部通过
- 在期间停止销售商品3的商店D.
- 启动期后销售产品3,销售产品4贯穿
- 店的f,产品5变动的价格,然后停止销售店E,然后再以新的价格开始,所有的周期
的时期FINT平均值是从2014年1月5日00:00:00至23:59:59 2014-01-10
我需要做的是计算一定周期内的平均价格是什么对于某个商店以及整体而言。即平均值是时间加权的(3天价格为3天,1天价格1为平均2.5天,平均4天)。我有两个问题:
- 可能会丢失起始值。最近的价格变化我很可能在计算时间段的乞讨中,所以我需要找到一种方法来填充它,以便它将用于平均值。事实上,这可能是整个时期唯一的价格。
- 用-1计算会得到错误的结果。该值应该被忽略,并且随着产品不再可用的时间,整体时间差应该被减小。
对于上面给出的数据的预期输出是(价格向上取整到最接近的分):
shop product price
A 1 28.00
B 2 41.06
C 1 29.99
C 2 40.99
D 3 249.99
E 4 19.99
F 5 53.81
我已经使用numpy.ma掩盖了-1值试过。不过,我一直没有成功,因为isnan
和masked_less
无法处理此问题。
任何想法,我怎么能做到这一点?
编辑: 编辑测试数据连接预期的结果更清楚地反映问题
向我们展示了上述数据的预期输出。 –
其他商店呢? –
另外,我们只需要查看您所包含数据的预期输出。 –