Skip to content

Better error message in pandas.core.index #2226

Closed
@quintusdias

Description

@quintusdias

If sortlevel is called with an out-of-range level, the error message is a bit confusing, particularly if the level is equal to the maximum number of levels.

# Example from "Python for Data Analysys", page 148
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.arange(12).reshape((4,3)), 
    index=[list('aabb'), [1, 2, 1, 2]], 
    columns=[['Ohio','Ohio','Colorado'],['Green','Red','Green']])
frame.sortlevel(2)

.
.
.

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-     
packages/pandas/core/index.pyc in _get_level_number(self, level)
   1363             elif level >= self.nlevels:
   1364                 raise ValueError('Index has only %d levels, not %d'
-> 1365                                  % (self.nlevels, level))
   1366         return level
   1367 

ValueError: Index has only 2 levels, not 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions