微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Python中将字符串转换为代码?

字符串转换代码

值得注意的要点:

>我不熟悉编码,正在测试各种要学习的东西;
>即是的,我确信有更好的方法来实现我想做的事情;
>然而,我想知道任何替代/更有效的方法;
>我还想知道如何将字符串转换代码以实现我的目标

到目前为止,我已经浏览了论坛和谷歌,并看到了一些关于此的主题,我无法在这里做任何工作,或者从我的角度精确回答问题,包括使用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] 举报,一经查实,本站将立刻删除。

相关推荐