pandasデータフレームを1列で並べ替える方法 質問する

pandasデータフレームを1列で並べ替える方法 質問する

次のようなデータフレームがあります:

        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_values2 つの列で並べ替える場合は、並べ替えの優先順位に従って順序付けられた列ラベルのリストを に渡します。 を使用すると、結果は列、次に列df.sort_values(['2', '0'])で並べ替えられます。 確かに、 の各値は一意であるため、この例ではこれはあまり意味がありません。20df['2']

おすすめ記事