gpt4 book ai didi

python - python 列表中的过滤无值返回 : TypeError: boolean value of NA is ambiguous

转载 作者:行者123 更新时间:2023-12-02 01:23:21 28 4
gpt4 key购买 nike

我曾经使用“filter”方法从 python (3.9.5) 列表中过滤掉 None 值。目前,在升级多个依赖项(pandas 1.3.1、numpy 1.23.5 等)时,我得到以下信息:

import pandas as pd
x = pd.array(['This is', 'some text', None, 'data.'], dtype="string")
x = list(x.unique())
list(filter(None, x))

返回:TypeError:NA 的 bool 值不明确

请对更改内容以及如何解决问题提供任何好的解释,我将不胜感激。

最佳答案

通过这样做也可以重现此错误

>>> bool(x[2])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pandas/_libs/missing.pyx", line 446, in pandas._libs.missing.NAType.__bool__
TypeError: boolean value of NA is ambiguous

正如查看 source code 所看到的那样这是故意的,因为 NA 并不是真正的 True 或 False,它的 bool 值是不明确的,因为它是一个“缺失值指示符”。

    def __bool__(self):
raise TypeError("boolean value of NA is ambiguous")

所以基本上你不能通过调用访问类的方法 bool 方法的函数来比较它。

解决这个问题的最简单方法是@NIKUNJ PATEL

>>> x = list(x.dropna().unique())

关于python - python 列表中的过滤无值返回 : TypeError: boolean value of NA is ambiguous,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75580189/

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