首页 > 解决方案 > 大熊猫中基于值的条件选择抛出ValueError

问题描述

我正在尝试根据一列上的某些条件从熊猫数据框中选择行。让我们开始吧,我的数据框列是:用户、年龄、性别。我正在尝试找出用户值为“kunal”的行。我尝试了以下两种方法:

df.loc[df.user == 'kunal']
df.loc[df.user == 'kunal', :]

它抛出以下错误:

ValueError: Cannot index with multidimensional key

我不知道 pandas 在最新版本中是否改变了任何东西。

标签: pythonpandas

解决方案


我相信问题MultiIndex出在列中:

df=pd.DataFrame({'a':['kunal',''],'b':[1,2]})
df.columns = [['user'] * 2, df.columns]
print(df)
    user   
       a  b
0  kunal  1
1         2

print(df.columns)
MultiIndex(levels=[['user'], ['a', 'b']],
           labels=[[0, 0], [0, 1]])

可能的解决方案是通过元组选择:

df3 = df.loc[df.loc[:, ('user','a')] == 'kunal']
print(df3)

    user   
       a  b
0  kunal  1

推荐阅读