Python 日志错误'NonType'



我是python的新手,想问以下问题: 我收到此错误消息

一元 ~ 的错误操作数类型:"无类型">

当我运行一个非常简单的数据步骤时,如下所示:

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

有什么想法吗?

您的系列中似乎有非字符串类型。尝试在pd.Series.str.contains中设置na=False以更正此问题。未定义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

最新更新