如何解决使用IF条件和s.str.startswith时出错
如果条件为TRUE,我将使用str.startswith和if条件来“做某事”。我一直在浏览,并且有点了解如果存在if条件,则不清楚该如何处理。 我不确定如何为我的问题获得解决方案。 我首先编写的代码是:
for i in Bus.index:
if (Bus['NAME'].str.startswith("S")) :
print(i)
这给了我错误:
“ ValueError:系列的真值不明确。请使用a.empty,a.bool(),a.item(),a.any()或a.all()。”
我想说:
for i in Bus.index:
if rows in (Bus['NAME'].str.startswith("S")) are True,Then:
print(i)
and if it is false then do nothing.
据我从建议的帖子和在线其他搜索中了解到的那样,我的问题没有使用我所得到的错误中给出的建议,或者我可以看到类似的示例(但是我的眼睛较其他许多人缺乏训练,可以看到我的逻辑思维错误,而关键字在帖子的开头
“我有点理解”和“我不确定如何为我的问题找到解决方案”。
解决方法
我相信if()
会尝试在每次循环时汇总所有行的所有布尔值的真实性,这就是为什么错误要用any()
或{ {1}},将其压缩为单个布尔值。
由于要遍历索引,因此可以使用all()
在循环进行时评估每个索引处的行值:
loc()
根据您使用的目的,您还可以通过设置for i in Bus.index:
if (Bus.loc[i,'NAME'].startswith("S")):
print(i)
df并完全避免for循环来返回索引列表:
Bus
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。