
516
付録
A
NumPy
:応用編
('Jones', 'Bob'),
('Walters', 'Barbara')]
初めて
lexsort
を使ったときに戸惑うであろうポイントは、最後に引数に渡された配列から順に、配
列内のキーが並べ替えに使われていくところです
*
1
。上の例では、
first_name
を使う前に
last_name
を
使って並べ替えられています
*
2
。
シリーズやデータフレームの
sort_values
メソッドなど、
pandas
のソート用のメソッドは、
これらの関数の変種を用いて実装されています(これらは、欠損値を含むケースを考慮に入
れた実装となっています)。
A.6.2
使用可能な他のソートアルゴリズム
安定ソートアルゴリズムとは、同等な要素の位置関係をソート後も保存するものです。これは、相対
順序が意味を持つ間接ソートでは特に大切になることがあります。
In [189]: values = np.array(['2:first', '2:second', '1:first', '1:second',
.....: '1:third'])
In [190]: key = np.array([2, 2, 1, 1, 1])
In [191]: indexer = key.argsort(kind='merges
ort')
In [192]: indexer
Out[192]: array([2, 3, 4, 0, 1])
In [193]: values.take(indexer)
Out[193]: ...