我的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条件下添加更多行。
非常感谢您的帮助
答案 0 :(得分:2)
您可以使用pd.Series.fillna
:
allHoldings['NewCarryRate'].fillna(100, inplace=True)
不需要整个if
子句 - fillna
执行此操作。您收到此错误的原因是
if (allHoldings['NewCarryRate'].iloc[[i]].isnull())==True:
对于某些条目可能是真的,对某些条目可能是假的;口译员不知道是否执行该条款。