2016-12-29 8 views
2

をDATAFRAME私のデータフレームです:パンダはここで条件付きのコラム更新

   ACC Count SumOneLotPNL MinAVG U PerLotPNL Y 
AS                 
30106EURTRY1 30106  1   34.84  5.0 A 34.840000 3 
30106USDTRY0 30106  16  -3018.18 8190.0 T -261.623333 2 
30106USDTRY1 30106  6  1804.28 2069.0 A 248.820000 6 
30106WTIOIL0 30106  43  -8410.00 1160.0 T -331.410000 23 
30106WTIOIL1 30106  80  6600.00 1045.8 A 80.124000 37 

列Uの値がTであれば、私は同じ行の-1で列Yの値を乗算します。どうやってやるの?

おかげで、条件が満たされたサブセットを選択した後.loc

答えて

5

メイク使用し、次いで漸増して-1の効果を見るためにYに対応する行を乗算:

df.loc[df['U'] == 'T', 'Y'] *= -1 
df 

enter image description here

注:表記*=は、変数とvaその結果、結果を可変にする。

3

創造的な解決策

#  |<- -1 if 'T' else 1 ->| 
df.Y *= df.U.ne('T').mul(2).sub(1) 
df 

       ACC Count SumOneLotPNL MinAVG U PerLotPNL Y 
AS                 
30106EURTRY1 30106  1   34.84  5.0 A 34.840000 3 
30106USDTRY0 30106  16  -3018.18 8190.0 T -261.623333 -2 
30106USDTRY1 30106  6  1804.28 2069.0 A 248.820000 6 
30106WTIOIL0 30106  43  -8410.00 1160.0 T -331.410000 -23 
30106WTIOIL1 30106  80  6600.00 1045.8 A 80.124000 37