将字符串转换为代码
注意事项:
- 我是编码新手,正在测试各种要学习的东西;
- 即是的,我确信有更好的方法可以实现我想要做的事情;
- 但是,我想知道任何替代/更有效的方法;
- 我还想知道如何将字符串转换为代码以使用此技术实现我的目标
到目前为止,我已经浏览了论坛和谷歌,并看到了一些与此相关的主题,但我无法在这里解决这些问题,或者从我的角度准确回答问题,包括使用 eval
和 exec
。
场景
- 我有一个数据框:
london
有 23 列
- 我想创建一个数据框,显示所有具有“NaN”值的行
- 我曾尝试使用
.isnull()
,但它似乎一次只能处理一个列
- 我试图通过使用
|
返回任何列中的任何行来实现我想要的结果,其中 .isnull()
返回 True
只有两列的这种工作的例子是:
london[(london['Events'].isnull() | london['Max Gust SpeedKm/h'].isnull())]
但是,我需要用所有 23 列来实现这个结果,所以我尝试用一些代码来完成这个。
尝试的解决方案
- 创建一个包含所有列标题的字符串
- 即
london[(london['
列标题'].isnull()
后跟 |
然后是下一列
- 然后在上面工作示例中显示的容器中使用此字符串
- 即
伦敦[(
string)]
我已经成功地使用以下方法创建了我需要的字符串:
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: 'Call' 节点未实现
提前谢谢你。
这是在数据框中使用 NaN
值选择 行
的最简单方法:
df[pd.isnull(df).any(axis=1)]
我是一名优秀的程序员,十分优秀!