python pandas条件应用函数.shift

时间:2018-02-12 20:08:04

标签: python pandas dataframe lambda

假设我有这个数据框,我和我被要求计算加权平均值。 我查看了这个解决方案:How to calculate vwap (volume weighted average price) using groupby and apply?

但这并不能完全回答我的问题。

    ticker  date       quantity     price        holdings
    VLO     2014-02-19  5500.0      50.852800    5500
    VLO     2016-03-29  -1350.0     65.138200    4150
    VLO     2017-04-21   900.0      64.91643     5050
    VLO     2017-11-27  -985.0      81.886800    4065
  1. 数量可以是正数,这意味着它是买入,如果是负数, 它是卖的。
  2. wapp =如果数量为负数,则先前为wapp。
  3. 否则,wapp =(数量*价格)+(previous_holdings * previous_wapp)/ current_holdings
  4. 因此,这是上述数据帧的正确wapp:

        ticker  date       quantity     price        holdings   wapp
        VLO     2014-02-19  5500.0      50.852800    5500       50.8528
        VLO     2016-03-29  -1350.0     65.138200    4150       50.8528
        VLO     2017-04-21   900.0      64.91643     5050       53.35919
        VLO     2017-11-27  -985.0      81.886800    4065       53.35919
    

    所以,当有卖出时:没有wapp变化,但持有量会发生变化。 随后,下一个wapp受到影响。

    有没有办法在熊猫中这样做,或者我应该采取行动 到python?

    非常感谢你的帮助。

0 个答案:

没有答案