Python日志错误' NonType'

时间:2018-05-09 14:55:00

标签: python types where

我'我是python的新手,想问下列内容: 我收到此错误消息

  

一元的坏操作数类型〜:' NoneType'

当我运行一个非常简单的数据步骤时:

df['new_FLAG'] = np.where(~(df.var2.str.contains('Test|Random|Hypo|Sample',case = False)) & 
   df.var3.isin(['CLIENT_CURRENT', 'MODEL_CURRENT', 'HYPOTHETICAL']) &
   (df.var1> 4) & (df.var1< 31)
                                 ,'Y','N')

我的数据框是这样的:

    var1    var2    var3
0   17  AMPF PCA 5.9.18 MODEL_CURRENT
1   17  AMPF PCA 5.9.18 MODEL_CURRENT
2   17  AMPF PCA 5.9.18 MODEL_CURRENT
3   17  AMPF PCA 5.9.18 MODEL_CURRENT
4   17  AMPF PCA 5.9.18 MODEL_CURRENT

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的系列中似乎有非字符串类型。尝试在na=False中设置pd.Series.str.contains来更正此问题。 None的否定未定义,这是您的错误所指示的。

这是一个最小的例子:

s = pd.Series(['Testing', 'AnotherSTring', 2.5, 'Something Else', np.nan, 'Sampler'])

res1 = s.str.contains('Test|Random|Hypo|Sample', case=False)

# 0     True
# 1    False
# 2      NaN
# 3    False
# 4      NaN
# 5     True
# dtype: object

res2 = s.str.contains('Test|Random|Hypo|Sample', case=False, na=False)

# 0     True
# 1    False
# 2    False
# 3    False
# 4    False
# 5     True
# dtype: bool