首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ValueError:条件所需的布尔数组,而不是单位测试中的对象

ValueError:条件所需的布尔数组,而不是单位测试中的对象
EN

Stack Overflow用户
提问于 2022-07-15 16:01:39
回答 1查看 863关注 0票数 1

我有个密码

  1. 从CSV读取数据,
  2. 替换从空格到下划线的列,以及
  3. 用None代替nan。
代码语言:javascript
运行
复制
    def read_file_and_transform(local_file_path):
        """ """
        try:
            data_df = pd.read_csv(local_file_path)

            data_df.columns = data_df.columns.str.replace(' ', '_')

            clean_df = data_df.where((pd.notnull(data_df)), None)

        except Exception as e:
            logger.error("Failure in read file and transform method {}".format(e))
            raise e

我正在为这三行编写单元测试用例,并使用第3行来面对错误。

下面是我的测试用例:

代码语言:javascript
运行
复制
class MockPandas:
    def __init__(self):
        pass

    def read_csv(self, *args, **kwargs):
        """ """
        return pd.DataFrame([{"a b": np.nan, "b": 2.33}])

    def notnull(self, *args, **kwargs):
        """ """
        return pd.DataFrame([{"a_b": "None", "b": 2.33}])


 @patch("path", MockPandas())
    def test_read_file_and_transform(self):
        """ """
        result = self.obj.read_file_and_transform("/file_path")
        assert result == [{"a": None, "b": 2.33}]

我面临的错误是:

代码语言:javascript
运行
复制
ValueError: Boolean array expected for the condition, not object

这里有人能帮我吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-19 01:33:07

pandas.notnull返回一个与原始数据帧大小相同的新数据帧,其中每个单元格都有一个布尔值,指示各自的值是否为nan。

因此,您应该更改模拟版本的notnull的返回值,以匹配预期的返回值。

例如,如果原始df是:

代码语言:javascript
运行
复制
       A       B     C     D
0  Sandy     NaN  20.0  14.8
1   alex  olivia  20.0   3.0
2  brook  terica   7.0   NaN
3  kelly     dan   NaN   2.3
4    NaN  amanda   8.0   6.0

那么df.notnull将是:

代码语言:javascript
运行
复制
       A      B      C      D
0   True  False   True   True
1   True   True   True   True
2   True   True   True  False
3   True   True  False   True
4  False   True   True   True

熊猫的非空文档可以找到这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72996760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档