初めに
PythonのPandasについて初学者なりにまとめたいと思います。
学習に使っているのはこちらのキノコードです。
使用するExcelファイル
こちらをリンク先を保存してローカルに落として利用しています。
データの並び替え
シート名を指定してExcelを読み込む
Excelファイルをデータフレームとして読み込むには、read_excel関数を使用します。
read_excel関数の第1引数に、読み込みたいExcelファイル名を指定します。
続いて、第二引数のsheet_nameにシート名を渡すことで、指定のExcelシートを読み込むことができます。
列を指定して読み込む
引数usecolsにカラムを渡すことで、シート内の列を特定して読み込むことができます。
カラムの渡し方には、下記3通りの方法があります。
- 列番号をリストで指定
usecols=[0,1,2,3] - Excelの列名(A,B,C,D...)を指定
usecols=('A:D') - カラムをリストで指定
usecols=['社員番号','氏名','所属支店','性別']
指定した列を昇順で並び替え
指定の列でデータの並び替えを行うには、sort_valuesメソッドを使用します。
引数byに、並び替えを行う列のカラム名を渡します。
昇順→ascending=True
降順→ascending=False
デフォルトでは、昇順に並び替えが行われます。
ascending=Trueは省略可能
複数列を指定して昇順で並び替え
複数のカラムを元に並べ替えたい場合は、カラムをリストで指定します。
複数のカラムを指定する場合は、まず一番目に指定したカラムで並び替えが行われ、その並び替えの結果から、次に指定したカラムで並び替えが行われます。
並び替え時のNaNの扱い
デフォルトでは昇順・降順いずれの場合でも、欠損値は末尾に並びます。
ただし、引数na_positionに文字列'first'を渡すと、欠損値を先頭に並べることができます。
氏名で昇順に並び替え(na_position=fisrstを指定)
行方向に並び替え
行方向にデータを並び替えるには、引数axisに1を渡します。
ただし、数値と文字列が混在している場合は、並び替えることができないことに注意しましょう。
列方向に並び替え2
axis=0を指定で列方向の並び替えになる(省略可能のためご参考)
並び替えを元データに反映させる
元のデータフレームの値を並び替え後の値に変更するには、引数inplaceにTrueを渡し方法と引数inplaceを使わずに再度同じ変数に代入する方法があります。
インデックスを並び替える
インデックスを並び替えるには、sort_indexメソッドを使用します。
インデックスの並び替えをして元データに反映
inplaceをTrueで指定するか、変数に再代入すれば反映されます。
インデックスに欠損値があった場合の並び替え
値の場合と同じくna_positionで'first'を指定すると上に持ってこれます。
カラムの並び替え
カラムを並び替えるには、インデックスと同様にsort_indexメソッドを使用します。
引数axisに1を渡すとカラムを並び替えすることができます。
シリーズを取得して並び替え
基本の組み合わせです。
データフレームからシリーズを取り出し、シリーズの値をsort_valuesしたものを変数に代入します。
シリーズを取得してインデックスを並び替え(欠損値を上に)
こちらも同じく基本の組み合わせです。
データフレームからシリーズを取り出し、シリーズをsort_indexでインデックスで並び替え、かつ、na_position=''first'で欠損値を上に持ってきます。
終わり
すぐ忘れてしまうので何度も繰り返します。