到目前为止,我已经浏览了论坛和谷歌,并看到了一些关于此的主题,我无法在这里做任何工作,或者从我的角度准确回答问题,包括使用eval
和exec
。
london
有23列.isnull()
,但它似乎一次只能处理一列|
返回.isnull()
返回True
只有两列的此工作的示例是:
london[(london['Events'].isnull() | london['Max Gust SpeedKm/h'].isnull())]
但是,我需要使用所有23列来实现此结果,因此我尝试使用一些代码来完成此操作。
london[(london['
列标题 '].isnull()
后跟|
,然后是下一列london[(
的字符串 )]
我已设法使用以下内容创建我需要的字符串:
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' nodes are not implemented
提前谢谢。
答案 0 :(得分:4)
这是使用rows
值选择数据框中NaN
的最简单方法:
df[pd.isnull(df).any(axis=1)]
答案 1 :(得分:2)
string = []
for i in (london.columns.values):
string.append(london[i].isnull())
london[0<sum(string)]
由于您只有1和0,并且您正在寻找至少1个1,那么您只需将1,0&#39;添加到您的列表中然后对它们求和。如果金额大于1,你的if将变为1,否则你的if将变为0,所以你可以在那之后做伦敦指数。