在Pandas中使用set_index时出现异常

时间:2018-04-27 06:54:04

标签: python pandas indexing

我正在尝试Pandas中的set_index()方法,但是我得到了一个我无法解释的异常:

df

    movieId title        genres
1   2   Jumanji (1995)  Adventure|Children|Fantasy
5   6   Heat (1995) Action|Crime|Thriller
10  11  American President, The (1995)  Comedy|Drama|Romance

df.set_index(['a' , 'b' , 'c'], inplace = True)
df

KeyError: 'a'

您的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果希望通过嵌套list(双[])设置索引,其长度与df相同:

df.set_index([['a' , 'b' , 'c']], inplace = True)
print (df)
   movieId                          title                      genres
a        2                 Jumanji (1995)  Adventure|Children|Fantasy
b        6                    Heat (1995)       Action|Crime|Thriller
c       11  American President The (1995)        Comedy|Drama|Romance

如果使用list[])pandas,请尝试将a,b,c列设置为MultiIndex,因为不存在错误。

所以如果想按列设置索引:

df.set_index(['movieId' , 'title'], inplace = True)
print (df)
                                                           genres
movieId title                                                    
2       Jumanji (1995)                 Adventure|Children|Fantasy
6       Heat (1995)                         Action|Crime|Thriller
11      American President The (1995)        Comedy|Drama|Romance