LoginSignup
3
1

More than 1 year has passed since last update.

【Pandas基礎】dataframeの並べ替えの基本

Last updated at Posted at 2023-05-03

はじめに

自己紹介

Python勉強中の大学院生です。自分が詰まったところを記録していきます。

記事を書くに至った経緯

pandasのdataframeの並べ替えをしたいときに、どうやるんだっけと迷うことが多かったので、ここで記事にして整理しようと思いました。

本記事の概要

どんな人に読んでほしいか
  • Pythonのpandasを学び始めた人
  • pandasのdataframeの並べ替えのやり方をうまく整理できていない人
この記事に書くこと、わかること

dataframeの並べ替えのやり方がわかります。具体的なメソッドは以下の2つです。

  • df.sort_values() (列の要素で並べ替え)
  • df.sort_index()(インデックスで並べ替え)

具体的な方法

まずは適当にdataframeを作成します。

data.py

import pandas as pd

data = [[4, 2, 3, 1],
        [5, 8, 6, 7],
        [11, 10, 12, 9]]

df = pd.DataFrame(data=data,
                  index=['a', 'b', 'c', 'd'],
                  columns=['col1', 'col2', 'col3'])
df

col1 col2 col3
d 4 5 11
b 2 8 10
a 3 6 12
c 1 7 9

列の要素で並べ替え | df.sort_values()

例えば、今回のデータフレームを'col1'の大きさを基準に並べ替えたいときは
df.sort_values('col1')
とすることで、

col1 col2 col3
c 1 7 9
b 2 8 10
a 3 6 12
d 4 5 11

このように、col1の列で上から小さい順に並べ替えることができました。列基準で並べ替えたいときは.sort_values()を用いてカラム名を指定することで実行できます。

並べ替えを小さい順(昇順)ではなく大きい順(降順)にしたい場合は、引数にascending=Falseを加えます。

df.sort_values('col1', ascending=Fasle)

col1 col2 col3
d 4 5 11
a 3 6 12
b 2 8 10
c 1 7 9

※昇順の時は何も指定しなければ元々昇順になる設定になっているので、ascending=Trueと表記しなくても大丈夫です。降順にしたいときは指定する必要があります。

インデックスで並べ替え | df.sort_index()

列の要素だけでなく、インデックス(行名)で並べ替えたい時もあると思います。そのときはシンプルに
df.sort_index()
を実行することで、

col1 col2 col3
a 3 6 12
b 2 8 10
c 1 7 9
d 4 5 11

インデックスをアルファベット順に並べることができました。逆にしたいときは、さっきと同じように
df.sort_index(ascending=False)
とすればOKです。

まとめ

  • 列の要素で並べ替えたい→.sort_values('column')
  • インデックスで並べ替えたい→.sort_index()

データフレームを並べ替えたい時にどっちだっけ?とよくごっちゃになっていたので、これを機に整理して使いこなしていきたいと思います。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1