У меня есть фрейм данных с 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, так что чем больше рук, тем лучше.
Спасибо