使用 .loc 和布尔值的多维键出现 Pandas 错误

Bak*_*kes 2 conditional-statements pandas valueerror

尽管代码之前可以工作,但两周以来一直遇到同样的错误。不确定我是否将 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**
Run Code Online (Sandbox Code Playgroud)

代码片段

Bak*_*kes 5

修复。我做了 df.columns = [column_list] where column_list = [...],这导致 df 被视为具有多重索引,即使只有一个级别。从 df.columns 赋值中删除了括号。