值得注意的要点:
>我不熟悉编码,正在测试各种要学习的东西;
>即是的,我确信有更好的方法来实现我想做的事情;
>然而,我想知道任何替代/更有效的方法;
>我还想知道如何将字符串转换为代码以实现我的目标
到目前为止,我已经浏览了论坛和谷歌,并看到了一些关于此的主题,我无法在这里做任何工作,或者从我的角度精确回答问题,包括使用eval和exec.
情景
>我有一个数据框:伦敦有23列
>我想创建一个数据框,显示所有具有’NaN’值的行
>我尝试使用.isnull(),但它似乎一次只能处理一个列
>我试图通过使用|来实现我想要的结果返回.isnull()返回True的任何列中的任何行
仅使用两列的一个示例是:
london[(london['Events'].isnull() | london['Max Gust SpeedKm/h'].isnull())]
但是,我需要使用所有23列来实现此结果,因此我尝试使用一些代码来完成此操作.
试图解决方案
>创建包含所有列标题的字符串
> ie london [(london [‘Column Header’].isnull()后跟|,然后是下一列
>然后在上面的工作示例中显示的容器中使用此字符串
>即伦敦[(字符串)]
我已设法使用以下内容创建我需要的字符串:
string = []
for i in (london.columns.values):
string.append("london['" + i + "'].isnull()")
string.append(" | ")
del string[-1]
final_string = "".join(string)
最后,当我尝试实现最后一步时,我无法弄清楚如何将此字符串转换为可用代码.
例如:
Now = eval(final_string)
london[Now]
导致:
NotImplementedError:未实现“调用”节点
先感谢您.
解决方法:
string = []
for i in (london.columns.values):
string.append(london[i].isnull())
london[0<sum(string)]
由于你只有1和0而且你正在寻找至少1个1,那么你可以在列表中添加1,0,然后将它们相加.如果总和超过1你的if会转1,否则你的if会变为0所以你可以在那之后做伦敦指数.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。