gpt4 book ai didi

python - 为什么 str.contains 和 np.where 返回奇怪的结果?

转载 作者:行者123 更新时间:2023-12-05 02:33:55 25 4
gpt4 key购买 nike

我看到有很多关于 str.contains 和 np.where 的问题,很抱歉,如果重复了。我只是失去了概述。

我想知道为什么 np.where 中的函数 str.contains 在应用于 np.NaN 时会产生积极的结果? (以我得到 1 的方式,就好像字符串将包含搜索词一样)

df = pd.DataFrame({'A': ['Mouse', 'dog', 'cat', '23', np.NaN]})
df['B']=np.where(df.A.str.contains('og'),1,0)
print(df)

A B
0 Mouse 0
1 dog 1
2 cat 0
3 23 0
4 NaN 1

我知道我可以通过将 na=False 设置为 str.contain 中的参数来得到正确的结果。我只是想知道这种行为,并想了解为什么会出现这样的结果。

最佳答案

原因是对于 NaN 条目,df.A.str.contains('og') 的计算结果为 np.NAN,而 np.NaN 是 Trueish。你可以这样尝试

if np.NAN:
print("This gets printed")

由于 np.where 在您的情况下只要给定条件的计算结果为 True 就会返回 1,您会在输入中有 NaN 的情况下返回 1。

关于python - 为什么 str.contains 和 np.where 返回奇怪的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70852488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com