我有一个交易数据框,其中每笔交易都有相应的金额和价格。如何在1分钟内对 Dataframe 进行重新采样,并计算每个时段的加权平均价格?
>df
amount price
datetime
2023-06-23 10:55:40.420 0.04657 30106.01
2023-06-23 10:55:42.348 0.00085 30104.54
2023-06-23 10:55:42.491 0.00368 30104.54
2023-06-23 10:55:43.211 0.03008 30104.54
2023-06-23 10:55:45.910 0.00035 30101.56
... ... ...
2023-06-23 10:58:06.401 0.00863 30108.00
2023-06-23 10:58:06.661 0.00829 30108.00
2023-06-23 10:58:07.474 0.00305 30108.00
2023-06-23 10:58:07.599 0.00048 30108.00
2023-06-23 10:58:08.393 0.00041 30108.00
[428 rows x 2 columns]
我可以通过以下方式对交易金额重新采样:
>>> df['amount'].resample("1Min").sum()
datetime
2023-06-23 10:55:00 0.78885
2023-06-23 10:56:00 12.84216
2023-06-23 10:57:00 9.56456
2023-06-23 10:58:00 0.08334
Freq: T, Name: amount, dtype: float64
但是,根据每次交易的金额计算每个时期的平均价格的最佳解决方案是什么?
1条答案
按热度按时间w1jd8yoj1#
您可以计算金额 * 价格的平均值,然后除以每期金额的总和:
输出:
最后一步之前的中间体(
.eval('product/amount')
):