
Pandasとは
PandasはPythonで構造化データを解析する際に用いるライブラリです。
ここでいう構造化データとは行と列持ったデータでSQLデータベースやExcel等で管理されるものを指します。
その対をなす概念として非構造化データというものがありますが、それは画像や音声等の構造化データの形式に当てはまらないあらゆるデータを指します。
PandasはCSVやテキストファイル、Excel、SQLデータベース等のフォーマットのデータを読み書きすることができます。
構造化データの処理はデータの大きさによって時間がかかるので、パフォーマンスのため重要なコードはCythonまたはC言語で実装されています。
Pandasでできること
データの変形やピボット、欠損値処理、結合、その他のデータ処理を簡単に行うことができます。
また、時系列データに特化した関数も幅広く用意されており、日付範囲作成や周波数変換、移動窓を用いた統計値や線形回帰、シフト、遅延などが使えます。
また、簡単なデータの可視化も行うことができます。
他のNumpy、statsmodels、 matplotlib、sklearn等の Pythonライブラリとも相性が良くデータ操作、および解析、そして機械学習で広く用いられています。
全くPandasに触れたことのない方はまずPandasの公式チュートリアルを一通り写経することをお勧めします。
アクティビティ
※今回のアクティビティではanaconda上のJupyter Notebookを使用します。
1. データ読み込み
今回使用するデータはボストンの住宅価格に関するデータです。
データはこちらからダウンロードしてください。
- Jupyter Notebookの新しいノートブックを作成してください。
- Pandasをインポートしてください。
- ダウンロードしたファイルをPandas Dataframeとして変数に格納してください。
2. データ操作
2-1 最初の五行を表示しましょう。

2-2 両データの次元数(行数, 列数)を確認しましょう。(テストデータにはSalesPriceがないため列数が1少なくなります。)

2-4 全ての列の名前を表示しましょう。

2-5 列ごとの基本情報を表示しましょう。

2-6 数値データのみが入ったデータフレームを新しく作成しましょう。
pandas.DataFrame.select_dtypes

2-7 上で作成したデータフレームでSalesPriceと相関の高い上位10列を表示しましょう。

3. データの可視化
3-1 SalesPrice列の分布の情報を表示しましょう。

3-2 Pandasの組み込み関数を使ってSalesPrice列のヒストグラムを表示しましょう。

3-3 OverallQaulはSalesPriceと高い相関がありました。この列について分析しましょう。
3-3-1 OverallQualの固有値 (unique value) を表示しましょう。

3-3-2 OverallQual列からピボットテーブルを作成し、SalesPriceとの関係を表示しましょう。 (集計には平均を使いましょう)

3-3-3 上のデータフレームを棒グラフとして表示しましょう。

3-4 YearBuilt列についても分析しましょう。
3-4-1 YearBuilt列の範囲を表示しましょう。

3-4-2 YearBuiltを10年ごとにビン分割(Binning)したYearBins列を生成しましょう。

※ビン分割とは数値を大まかな範囲で分割することです。1995, 2003, 2019をそれぞれ10ごとにビン分割すると1990~1999, 2000~2009, 2010~2019となります。
3-5 SalesPriceとYearBins、OverallQualとの関係を箱ひげ図(Box Plot)で表示しましょう。

3-6 SalesPriceとGrLivArea、GarageCars、GarageArea、 TotalBsmtSFの関係を分布図(Scatter Plot)として表示しましょう。
今回のアクティビティは以上です。
より高度なデータの可視化はmatplotlibやseabornを使うことで行えます。