0
1

More than 1 year has passed since last update.

Python Pandas基礎④ -データ並び替え-

Last updated at Posted at 2022-10-02

初めに

PythonのPandasについて初学者なりにまとめたいと思います。
学習に使っているのはこちらのキノコードです。

使用するExcelファイル

こちらをリンク先を保存してローカルに落として利用しています。

データの並び替え

シート名を指定してExcelを読み込む

Excelファイルをデータフレームとして読み込むには、read_excel関数を使用します。
read_excel関数の第1引数に、読み込みたいExcelファイル名を指定します。
続いて、第二引数のsheet_nameにシート名を渡すことで、指定のExcelシートを読み込むことができます。
image.png

列を指定して読み込む

引数usecolsにカラムを渡すことで、シート内の列を特定して読み込むことができます。
カラムの渡し方には、下記3通りの方法があります。

  1. 列番号をリストで指定
    usecols=[0,1,2,3]
  2. Excelの列名(A,B,C,D...)を指定
    usecols=('A:D')
  3. カラムをリストで指定
    usecols=['社員番号','氏名','所属支店','性別']
    image.png

指定した列を昇順で並び替え

指定の列でデータの並び替えを行うには、sort_valuesメソッドを使用します。
引数byに、並び替えを行う列のカラム名を渡します。
昇順→ascending=True
降順→ascending=False
デフォルトでは、昇順に並び替えが行われます。
ascending=Trueは省略可能
image.png

複数列を指定して昇順で並び替え

複数のカラムを元に並べ替えたい場合は、カラムをリストで指定します。
複数のカラムを指定する場合は、まず一番目に指定したカラムで並び替えが行われ、その並び替えの結果から、次に指定したカラムで並び替えが行われます。
image.png

並び替え時のNaNの扱い

デフォルトでは昇順・降順いずれの場合でも、欠損値は末尾に並びます。
ただし、引数na_positionに文字列'first'を渡すと、欠損値を先頭に並べることができます。

氏名で昇順で並び替え
image.png

氏名で昇順に並び替え(na_position=fisrstを指定)
image.png

行方向に並び替え

行方向にデータを並び替えるには、引数axisに1を渡します。
ただし、数値と文字列が混在している場合は、並び替えることができないことに注意しましょう。
image.png

列方向に並び替え2

axis=0を指定で列方向の並び替えになる(省略可能のためご参考)
image.png

並び替えを元データに反映させる

元のデータフレームの値を並び替え後の値に変更するには、引数inplaceにTrueを渡し方法と引数inplaceを使わずに再度同じ変数に代入する方法があります。
image.png

インデックスを並び替える

インデックスを並び替えるには、sort_indexメソッドを使用します。
image.png

インデックスの並び替えをして元データに反映

inplaceをTrueで指定するか、変数に再代入すれば反映されます。
image.png

インデックスに欠損値があった場合の並び替え

値の場合と同じくna_positionで'first'を指定すると上に持ってこれます。
image.png

カラムの並び替え

カラムを並び替えるには、インデックスと同様にsort_indexメソッドを使用します。
引数axisに1を渡すとカラムを並び替えすることができます。
image.png

シリーズを取得して並び替え

基本の組み合わせです。
データフレームからシリーズを取り出し、シリーズの値をsort_valuesしたものを変数に代入します。

image.png

シリーズを取得してインデックスを並び替え(欠損値を上に)

こちらも同じく基本の組み合わせです。
データフレームからシリーズを取り出し、シリーズをsort_indexでインデックスで並び替え、かつ、na_position=''first'で欠損値を上に持ってきます。

image.png

終わり

すぐ忘れてしまうので何度も繰り返します。

0
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
0
1