次のようなデータフレームがあります:
0 1 2
0 354.7 April 4.0
1 55.4 August 8.0
2 176.5 December 12.0
3 95.5 February 2.0
4 85.6 January 1.0
5 152 July 7.0
6 238.7 June 6.0
7 104.8 March 3.0
8 283.5 May 5.0
9 278.8 November 11.0
10 249.6 October 10.0
11 212.7 September 9.0
ご覧のとおり、月は暦の順序ではありません。そこで、各月に対応する月番号 (1 ~ 12) を取得する 2 番目の列を作成しました。そこから、このデータフレームを暦の月の順序で並べ替えるにはどうすればよいでしょうか。
ベストアンサー1
使用sort_values
特定の列の値で df を並べ替えるには:
In [18]:
df.sort_values('2')
Out[18]:
0 1 2
4 85.6 January 1.0
3 95.5 February 2.0
7 104.8 March 3.0
0 354.7 April 4.0
8 283.5 May 5.0
6 238.7 June 6.0
5 152.0 July 7.0
1 55.4 August 8.0
11 212.7 September 9.0
10 249.6 October 10.0
9 278.8 November 11.0
2 176.5 December 12.0
sort_values
2 つの列で並べ替える場合は、並べ替えの優先順位に従って順序付けられた列ラベルのリストを に渡します。 を使用すると、結果は列、次に列df.sort_values(['2', '0'])
で並べ替えられます。 確かに、 の各値は一意であるため、この例ではこれはあまり意味がありません。2
0
df['2']