Python 如何正确过滤间歇性故障;“非类型”;行中的值是否应用函数?

Python 如何正确过滤间歇性故障;“非类型”;行中的值是否应用函数?,python,pandas,Python,Pandas,免责声明:我无法从工作终端复制/粘贴,因此以下是问题的复制版本,代码不同,没有数据 我正在努力理解如何使用apply函数“处理”内联错误数据,而不必避免类型错误。下面的一些示例代码演示了这个问题 我尝试过更早地清理数据,但运气不好。在使用下面的转换为标量技巧后,我停止了尝试 def afunc(x): #will error out on "NoneType" if (x.value.isnull() or x.value2.isnull()): return "blah" ## w

免责声明:我无法从工作终端复制/粘贴,因此以下是问题的复制版本,代码不同,没有数据

我正在努力理解如何使用apply函数“处理”内联错误数据,而不必避免类型错误。下面的一些示例代码演示了这个问题

我尝试过更早地清理数据,但运气不好。在使用下面的
转换为标量
技巧后,我停止了尝试

def afunc(x):
  #will error out on "NoneType"
  if (x.value.isnull() or x.value2.isnull()): return "blah"
  ## will work
  a = x.value
  b = x.value2
  if (a and b): return "blah"
  return "not blah"

aDf.apply(afunc,axis=1)

有人能提供一些关于发生了什么的见解吗?我是否应该捕获异常并以这种方式工作?

以下内容适用于您的情况:

def afunc(x):
  if (x.value == None or x.value2 == None): return "blah"
  ## will work
  a = x.value
  b = x.value2
  if (a and b): return "blah"
  return "not blah"

aDf['result'] = aDf.apply(afunc,axis=1)

以下内容适用于您的情况:

def afunc(x):
  if (x.value == None or x.value2 == None): return "blah"
  ## will work
  a = x.value
  b = x.value2
  if (a and b): return "blah"
  return "not blah"

aDf['result'] = aDf.apply(afunc,axis=1)

np.where(x.value.isnull()| x.value2.isnull(),'blah','')我会在函数开头进行类型检查:
如果x.value为None
感谢您的快速响应。我在函数的前面添加了一些防御检查,我仍然得到了答案。我没有尝试numpy的想法-我会确保我明天仍然可以复制这个问题。np.where(x.value.isnull()| x.value2.isnull(),“blah”,我会在函数开始时进行类型检查:
如果x.value没有
感谢您的快速响应。我在函数的前面添加了一些防御检查,我仍然得到了答案。我没有尝试numpy的想法-我会确保明天我仍然可以复制这个问题。