Мне неясно, как работает параметр sort_remaining
в sort_index()
.
В приведенном ниже коде я считаю, что два последних выхода print
должны отличаться. Последний вывод должен сохранять порядок 'two', 'one', 'two', 'one'...
из исходной переменной arrays
.
Согласно документации , sort_remaining
работает следующим образом:
если true и сортировка по уровню и индексу является многоуровневой, сортировка по другим уровням (по порядку) после сортировки по указанному уровню
Но sort_index()
, похоже, игнорирует этот параметр.
import pandas as pd
import numpy as np
arrays = [np.array(['baz', 'baz', 'qux', 'qux', 'bar', 'bar', 'foo', 'foo']),
np.array(['two', 'one', 'two', 'one', 'two', 'one', 'two', 'one'])]
s = abs(pd.Series(np.random.randn(8), index=arrays))
print(s)
> baz two 1.184898
> one 0.277570
> qux two 0.904124
> one 0.930612
> bar two 0.952764
> one 0.025261
> foo two 0.084330
> one 2.842760
> dtype: float64
print(s.sort_index(level=0, sort_remaining=True))
> bar one 0.025261
> two 0.952764
> baz one 0.277570
> two 1.184898
> foo one 2.842760
> two 0.084330
> qux one 0.930612
> two 0.904124
> dtype: float64
print(s.sort_index(level=0, sort_remaining=False))
> bar one 0.025261
> two 0.952764
> baz one 0.277570
> two 1.184898
> foo one 2.842760
> two 0.084330
> qux one 0.930612
> two 0.904124
> dtype: float64
мой фрейм данных недостаточно многоиндексирован, чтобы sort_remaining
имел эффект?