2019年1月23日水曜日

Excelから乗り換え? 手作業を省くpandasの使い方

  プログラミングPythonデータ分析

Excelは使いやすく、直感的で便利なソフトですが、とにかく手作業が多い。フィルターをかけたり、欠損値を消したり、ピボットテーブルを作成したりとすべてかなりの手数がかかります。pythonのライブラリのpandasを使えば、そんな操作を1行のコマンドだけですぐに実行することができます。また、NumpyやMatplotlib、SciPy、BeautifulSoup、TensorFlowなど様々なライブラリと連携を行い、回帰分析・決定木やクラスタリング・スクレイピング・ディープラーニングまで複雑な分析や予測モデルの構築まで対応することができます。今回は自分の備忘録も兼ねてpandas公式サイトのdocumentationを参考に基本となる操作をまとめてみました。


配列の作成

1次元配列(Series)

単純な配列です。indexは指定しなくても自動で連番が振られます。

2次元配列(DataFrame)

excelのセルに入力するようなイメージです。下記の例ではindexとcolumnは指定しています。
下記の例ではdict形式でDataFrameに数値を入力しています。
dtypesでcolumnデータの型を調べることができます。

データの閲覧と整理

pandasならコマンド一つで、見たいデータにスマートにアクセスできます。

閲覧

最初・最後の行の一部のみ表示
index・column名・データの型を出力、値の確認
データの統計も一発です。
行列の入れ替え

ソート

軸でソート
値でソート

データの選択

直接指定

列の選択
行の選択、スライスも使える
ラベルでの選択(loc)、スカラの場合(at)で高速化
下記の例では第一引数で行の指定(スライスも可能、今回はすべての行)、第二引数で列の指定しています。
行番号での選択(iloc)、スカラの場合(iat)で高速化
下記の例では第一引数で行の指定(スライスも可能、「,」で番号を指定で串刺し選択も可能)、第二引数で列の指定しています。

関係演算子を使った指定

数値の大小で選択

フィルタを使った指定

文字列でフィルタをかける(isin)。文字通りexcelのフィルタのような処理ができます。

欠損値

データ分析において一番やっかいなのが欠損値の処理です。欠損値を正しく処理しないと現実とはかけ離れた結論を導いてしまいます。pandasなら簡単に処理方法を指定できます。
欠損値の存在する行を省いて表示
欠損値を指定値で埋めて出力
欠損値であるかないかbooleanで判定


0 コメント:

コメントを投稿