首页 > 解决方案 > 使用 .loc 和布尔值的多维键的 Pandas 错误

问题描述

即使代码以前工作过,也遇到同样的错误 2 周。不确定我是否将 pandas 作为另一个库安装的一部分进行了更新,也许那里发生了一些变化。当前版本为 23.4。预期的结果是只返回具有该标识符值的行。

In [42]: df.head()

Out[43]:

index   Identifier  ... 
0        51384710   ... 
1        74838J10   ... 
2        80589M10   ...     
3        67104410   ... 
4        50241310   ... 

[5 rows x 14 columns]
In [43]: df.loc[df.Identifier.isin(['51384710'])].head()
    Traceback (most recent call last):
      File "C:\anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2862, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-44-a3dbf43451ef>", line 1, in <module>
     df.loc[df.Identifier.isin(['51384710'])].head()
File "C:\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1478, in __getitem__
        return self._getitem_axis(maybe_callable, axis=axis)
File "C:\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1899, in _getitem_axis
        raise ValueError('Cannot index with multidimensional key')
    **ValueError: Cannot index with multidimensional key**

代码片段

标签: pandasconditionalvalueerror

解决方案


解决它。我已经完成了 df.columns = [column_list] where column_list = [...],这导致 df 被视为具有多索引,即使只有一个级别。从 df.columns 分配中删除了括号。


推荐阅读