簡體   English   中英

Pandas數據幀條件列更新

[英]Pandas dataframe conditional column update

這是我的數據幀:

                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,我想在同一行中將列Y的值乘以-1。 我怎樣才能做到這一點?

謝謝,

在選擇滿足條件的子集后使用.loc ,然后將Y中的相應行與-1逐步相乘以查看效果:

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

在此輸入圖像描述

注意:符號*=將變量和值相乘,從而使結果成為變量。

創意解決方案

#       |<- -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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM