Это проблема с unused levels
.Когда у вас есть MultiIndex, уровни все еще там, просто не используются, так что вы можете удалить их при необходимости:
result.groupby(axis=1, level=0).get_group(0).columns.remove_unused_levels().levels[1]
#Index(['A', 'B', 'C', 'D', 'E'], dtype='object')
Чтобы увидеть, что все еще там, посмотрите на столбцы.Для первого уровня по-прежнему существует 13 значений, но эта группа ссылается только на первые 5.
print(result.groupby(axis=1, level=0).get_group(0).columns)
#MultiIndex(levels=[[0, 1, 2], ['A', 'B', 'C', 'D', 'E', 'G', 'H', 'I', 'J', 'L', 'M', 'N', 'P']],
# codes=[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4]])