【发布时间】:2018-05-18 09:19:46
【问题描述】:
我有一个看起来像这样的 df:
carry_dt sedol prime_broker_id legal_entity strategy NewCarryRate
716 2018-01-02 B1T84Z4 CITI USSA-AGG USSA NaN
我想检查'NewCarryRate'列中是否有任何NaN值并替换它们
我创建了一个 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 条件更容易,因为如果我愿意,我可以在 if 条件下添加更多行。
非常感谢您的帮助
【问题讨论】:
-
您在
.iloc[[i]]使用双数组,您不是说.iloc[i]吗?而且你不必使用== True这是多余的 -
@Ron 谢谢你的回答我做了
.iloc[[i]]来选择第i 行。不正确吗?同样当我做allHoldings['NewCarryRate'].iloc[i].isnull())时,我得到一个错误 -
我不确定什么是正确的,我从未使用过熊猫。但是你想用它来完成什么?是否要检查整行是否为空?
-
看看这个answer
-
@SBad 实际上,根据您的描述,您只是希望将这些值替换为 100;明确检查第 i 行是否为 NaN 本身不是您的目的。
标签: python-3.x pandas if-statement