如何正确过滤行应用函数中的间歇性“ NoneType”值?

时间:2019-05-23 03:06:21

标签: python pandas

免责声明:我无法从工作终端复制/粘贴,因此下面是使用不同代码且没有数据的问题的再现。

我正努力了解如何使用Apply函数来“处理”内联错误数据,而不用担心类型错误。下面的一些示例代码演示了该问题。

我很早就尝试清理数据,但运气不佳。使用以下convert-to-scalar技巧后,我已经停止尝试。

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)

有人可以提供一些有关正在发生的事情的见解吗?我应该捕捉异常并以这种方式工作吗?

1 个答案:

答案 0 :(得分:0)

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

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)