我想创建一个新列,如果多个列具有nan值,则添加数字1。但是,当我运行编写的代码时,我总是遇到错误消息
df_test2['notsure']=np.where((df_test2[df_test2[['android','blackberry','chrome_os','linux',
'macintosh','tizen','windows_phone','windows',
'ipad','iphone','device_other']].isna().any(1)]),1,0)
错误信息:
ValueError:值的长度与索引的长度不匹配
最佳答案
这是按嵌套列表过滤的必要条件:
cols = ['android','blackberry','chrome_os','linux',
'macintosh','tizen','windows_phone','windows',
'ipad','iphone','device_other']
df_test2['notsure'] = np.where(df_test2[cols].isna().any(1),1,0)
另一种方法是将布尔掩码转换为
True/False
到1,0
映射的整数:df_test2['notsure'] = df_test2[cols].isna().any(1).astype(int)
关于python - 根据多个条件追加列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56238622/