如果列A和列B中的条件满足熊猫,则填充列C

时间:2020-07-22 16:42:14

标签: python pandas

我有一个像这样的数据集

  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

1 个答案:

答案 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 
相关问题