首页 > 解决方案 > 熊猫在某些数据帧行上翻转标志

问题描述

我有一个看起来像这样的数据框:

      underlyingSymbol           symbol                  description  averagePrice  marketValue putCall  shortQuantity  longQuantity
    0             COST  COST_071720P285   COST Jul 17 2020 285.0 Put         1.947        0.080     PUT            0.0           1.0
    1             COST  COST_071720P290   COST Jul 17 2020 290.0 Put         2.493       -0.115     PUT            1.0           0.0
    2             COST  COST_071720C330  COST Jul 17 2020 330.0 Call         2.383       -2.370    CALL            1.0           0.0
    3             COST  COST_071720C335  COST Jul 17 2020 335.0 Call         1.587        1.200    CALL            0.0           1.0
    4              GLD   GLD_071720P151    GLD Jul 17 2020 151.0 Put         0.887        0.015     PUT            0.0           1.0
    5              GLD   GLD_071720P154    GLD Jul 17 2020 154.0 Put         1.413       -0.020     PUT            1.0           0.0
    6              GLD   GLD_071720C169   GLD Jul 17 2020 169.0 Call         1.583       -1.655    CALL            1.0           0.0
    7              GLD   GLD_071720C172   GLD Jul 17 2020 172.0 Call         1.137        0.450    CALL            0.0           1.0

我一直在尝试翻转averagePrice列上的标志,但前提shortQuantity是大于longQuantity

这应该是最终结果:

  underlyingSymbol           symbol                  description  averagePrice  marketValue putCall  shortQuantity  longQuantity
0             COST  COST_071720P285   COST Jul 17 2020 285.0 Put         1.947        0.080     PUT            0.0           1.0
1             COST  COST_071720P290   COST Jul 17 2020 290.0 Put         -2.493       -0.115     PUT            1.0           0.0
2             COST  COST_071720C330  COST Jul 17 2020 330.0 Call         -2.383       -2.370    CALL            1.0           0.0
3             COST  COST_071720C335  COST Jul 17 2020 335.0 Call         1.587        1.200    CALL            0.0           1.0
4              GLD   GLD_071720P151    GLD Jul 17 2020 151.0 Put         0.887        0.015     PUT            0.0           1.0
5              GLD   GLD_071720P154    GLD Jul 17 2020 154.0 Put         -1.413       -0.020     PUT            1.0           0.0
6              GLD   GLD_071720C169   GLD Jul 17 2020 169.0 Call         -1.583       -1.655    CALL            1.0           0.0
7              GLD   GLD_071720C172   GLD Jul 17 2020 172.0 Call         1.137        0.450    CALL            0.0           1.0

标签: pythonpandasdataframe

解决方案


下面的代码应该给你你想要的。

df.loc[df['shortQuantity'] < df['longQuantity'],'averagePrice'] = df['averagePrice'] * -1

推荐阅读