根据条件用数据填充NaN

时间:2018-08-29 22:21:11

标签: python pandas

我的代码如下:

if df['FLAG'] == 1:
    df['VAL'] = df['VAL'].fillna(median)
elif df['FLAG'] == 0:
    df['VAL'] = df['VAL'].fillna(0)

哪个返回-DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

我尝试过做一个面具,然后用a.all()应用它,但是没有成功。我非常感谢您的启发!

编辑:我已经在这里解决了我的问题-Link

2 个答案:

答案 0 :(得分:4)

这是元素操作,您可以将其向量化。用np.where构建一个数组,并将其传递给fillna

df['VAL'] = df['VAL'].fillna(np.where(df['FLAG'], median, 0))

答案 1 :(得分:1)

您可以这样做

 df.loc[df['VAL'].isna(),'Val']=df['FLAG']*median