對於我正在進行的項目,我需要計算商店產品的平均價格。每當商店更改產品的價格時,都會向數據集添加新條目。如果商店停止(暫時或永久)銷售產品,則會輸入時間戳和價格值-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
無法處理此問題。
任何想法,我怎麼能做到這一點?
編輯: 編輯測試數據連接預期的結果更清楚地反映問題
向我們展示了上述數據的預期輸出。 –
其他商店呢? –
另外,我們只需要查看您所包含數據的預期輸出。 –