python-3.x - 如果条件 + 检查 isnull() 为真
问题描述
我有一个看起来像这样的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 条件下添加更多行。
非常感谢您的帮助
解决方案
您可以pd.Series.fillna
为此使用:
allHoldings['NewCarryRate'].fillna(100, inplace=True)
整个if
条款是不必要的 -fillna
这样做。您收到此错误的原因是
if (allHoldings['NewCarryRate'].iloc[[i]].isnull())==True:
某些条目可能为真,而某些条目可能为假;口译员不知道是否执行该子句。
推荐阅读
- list - 如何使用 2 个列表文件创建一个 for 循环
- r - 如何避免使用 for 循环将嵌套列表的元素置于顶层?
- kotlin - Kotlin FragmentStatePagerAdapter 显示空视图
- webpack - webpack-cli init 无法添加入口点
- c++ - 在无符号整数中使用第一位作为标志
- azure - Mail.ReadBasic 等效应用范围
- typeorm - 找不到 Role#users 的实体元数据
- excel - 在工作簿之间移动工作表的问题
- bash - 创建存储帐户后无法立即创建 Azure 容器
- android - 如何在 NativeScript 中创建自定义导航栏?