pandas sort_index (иногда?) выдает ошибку: IndexError: выпадение индекса из диапазона - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть фрейм данных с 3 индексами, и я пытаюсь их отсортировать.К сожалению, в зависимости от порядка, в котором я пытаюсь сортировать индексы, я иногда получаю следующую ошибку:

Traceback (most recent call last):

  File "<ipython-input-30-30a4bb212256>", line 1, in <module>
    df_srmc_lrmc.sort_index(axis='index', level=['Station_Type', 'Generator','Year'], inplace=True)

  File "E:\Python35\WinPython-64bit-3.5.4.0Qt5\python-3.5.4.amd64\lib\site-packages\pandas\core\frame.py", line 3236, in sort_index
    sort_remaining=sort_remaining)

  File "E:\Python35\WinPython-64bit-3.5.4.0Qt5\python-3.5.4.amd64\lib\site-packages\pandas\core\indexes\multi.py", line 1714, in sortlevel
    primary = tuple(labels.pop(lev - i) for i, lev in enumerate(level))

  File "E:\Python35\WinPython-64bit-3.5.4.0Qt5\python-3.5.4.amd64\lib\site-packages\pandas\core\indexes\multi.py", line 1714, in <genexpr>
    primary = tuple(labels.pop(lev - i) for i, lev in enumerate(level))

IndexError: pop index out of range

Глядя на мой фрейм данных, вы можете увидеть следующие индексы:

df_srmc_lrmc.index.names
Out[32]: FrozenList(['Year', 'Generator', 'Station_Type'])

работают следующие команды сортировки:

df_srmc_lrmc.sort_index(axis='index', level=['Generator','Year','Station_Type'], inplace=True)
df_srmc_lrmc.sort_index(axis='index', level=['Year','Station_Type', 'Generator'], inplace=True)
df_srmc_lrmc.sort_index(axis='index', level=['Year','Generator','Station_Type'], inplace=True)
df_srmc_lrmc.sort_index(axis='index', level=['Station_Type', 'Year','Generator'], inplace=True)

Но следующие команды не дают, они выдают ошибку, упомянутую выше:

df_srmc_lrmc.sort_index(axis='index', level=['Generator','Station_Type','Year'], inplace=True)
df_srmc_lrmc.sort_index(axis='index', level=['Station_Type', 'Generator','Year'], inplace=True)

Как я уверен, вы уже догадались, я хочу одну изпорядок сортировки, который не работает: (

Информация о версии моей панды:

pd.__version__
Out[34]: '0.20.3'

Может кто-нибудь сказать мне, что происходит, или что я делаю неправильно? Я совершенно новыйв Python, так что чем больше рук, тем лучше.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...