Pandas DataFrameをインデックスで並べ替える方法は?


91

次のようなDataFrameがある場合:

import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])

インデックスと列値の各組み合わせをそのままにして、このデータフレームをインデックスで並べ替えるにはどうすればよいですか?

回答:


150

データフレームには、sort_indexデフォルトでコピーを返すメソッドがあります。inplace=True所定の位置で動作するためにパスします。

import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())

私に与える:

     A
1    4
29   2
100  1
150  5
234  3

13

少しコンパクト:

df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)

注意:


9
.sort()docstringによるとDEPRECATED: use DataFrame.sort_values()
endolith 2016

1
@endolithIndeed.sort()はその後非推奨になりました。置き換えは.sort_index()、Paul Hが彼の答えで使用するようになりますinplace=True。その場合、私たちの答えの唯一の違いは、私が使用しないことです。
幻想的な2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.