我有一个像这样的数据集
Contract Sections Trade_Qty_0 TradeQty Bid iBid
5 O.Z21 O2 no 42985 99.795 NaN
6 O.H22 O2 no 54538 99.810 99.81000
7 O.M22 O2 no 31295 99.795 99.79500
8 S3.U20 S3 no 3831 3.000 NaN
9 S3.Z20 S3 no 3295 -9.500 -9.25000
10 S6.M26 S6 yes 0 NaN 7.75000
11 S6.U26 S6 yes 0 NaN 5.50000
12 S6.Z26 S6 yes 0 NaN 5.50000
13 S6.H27 S6 yes 0 NaN 3.50000
14 S9.U26 S9 yes 0 NaN 9.00000
15 S9.Z26 S9 yes 0 NaN 7.50000
16 F3.U26 F3 yes 0 1.000 NaN
17 F3.Z26 F3 yes 0 -3.000 NaN
我想做的是检查TradeQty
是否为0?如果为0,我要检查是否填充了Bid
。如果未填充,我想在新列中打印“否”,说column C
。但是,如果已填充,我想打印“是”。所以我希望C列看起来像
Column C'
NAN
NAN
NAN
NAN
NAN
no
no
no
no
no
no
yes
yes
我正在做的就是这样分配值
A016 = A016.assign(Trade_Qty_0_Bid_present=((A016.TradeQty== 0) & (A016.Bid.notnull())))
A016.Trade_Qty_0_Bid_present.replace(True, 'Yes', inplace=True)
A016.Trade_Qty_0_Bid_present.replace(False, 'no', inplace=True)
但是我得到的答案是
Column C'
no
no
no
no
no
no
no
no
no
no
no
yes
yes
答案 0 :(得分:1)
您可以使用另一项分配将值替换为NaN
。
A016 = A016.assign(Trade_Qty_0_Bid_present=((A016.TradeQty== 0) & (A016.Bid.notnull())))
A016.Trade_Qty_0_Bid_present.replace(True, 'Yes', inplace=True)
A016.Trade_Qty_0_Bid_present.replace(False, 'no', inplace=True)
A016.loc[A016.TradeQty!=0, "Trade_Qty_0_Bid_present"] = pd.NA