if condition + check isnull()为true

时间:2018-05-18 09:19:46

标签: python-3.x pandas if-statement

我的df看起来像这样:

     carry_dt    sedol    prime_broker_id  legal_entity   strategy  NewCarryRate  
716   2018-01-02  B1T84Z4    CITI             USSA-AGG      USSA       NaN

我想检查列中是否有任何NaN值' NewCarryRate'并替换它们

我创建了一个if条件:

 if (allHoldings['NewCarryRate'].iloc[[i]].isnull())==True:
        allHoldings['NewCarryRate'].values[i]= 100

我收到错误说:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我知道我可以使用np.where但我觉得如果条件在这里使用会更容易,因为如果我愿意的话,我可以在if条件下添加更多行。

非常感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用pd.Series.fillna

allHoldings['NewCarryRate'].fillna(100, inplace=True)

不需要整个if子句 - fillna执行此操作。您收到此错误的原因是

if (allHoldings['NewCarryRate'].iloc[[i]].isnull())==True:

对于某些条目可能是真的,对某些条目可能是假的;口译员不知道是否执行该条款。