抛出ValueError的熊猫中基于值的条件选择

时间:2018-12-05 09:57:38

标签: python pandas

我正在尝试根据某一列上的某些条件从pandas数据框中选择行。 我们的数据框列为:用户,年龄,性别。 我试图找出用户值为'kunal'的行。我尝试了以下两种方法:

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

它抛出以下错误:

ValueError: Cannot index with multidimensional key

我不知道熊猫是否在最新版本中更改了任何内容。

1 个答案:

答案 0 :(得分:1)

我认为问题在于列中的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