【发布时间】:2017-12-04 21:20:19
【问题描述】:
我已经阅读了多篇与我的问题类似的帖子,但我仍然无法弄清楚。我有一个看起来像下面这样的 pandas df(多天):
Out[1]:
price quantity
time
2016-06-08 09:00:22 32.30 1960.0
2016-06-08 09:00:22 32.30 142.0
2016-06-08 09:00:22 32.30 3857.0
2016-06-08 09:00:22 32.30 1000.0
2016-06-08 09:00:22 32.35 991.0
2016-06-08 09:00:22 32.30 447.0
...
计算我能做的 vwap:
df['vwap'] = (np.cumsum(df.quantity * df.price) / np.cumsum(df.quantity))
但是,我想重新开始每一天(groupby),但我不知道如何使它与(lambda?)函数一起工作。
df['vwap_day'] = df.groupby(df.index.date)['vwap'].apply(lambda ...
速度至关重要。将不胜感激任何帮助:)
【问题讨论】:
-
这不是 VWAP 的正确公式。您需要计算典型价格(Hi、Lo、Close 的平均值)。你的价格数据应该有这个。
-
@DISC-O 所以请贡献代码并添加您的答案...
-
不确定我理解,评论是关于计算公式和需要更多数据(期间的高点和低点,然后平均值进入您的计算);代码很简单,我假设你知道如何计算 3 列的平均值。
标签: python pandas lambda pandas-groupby