難易度:★★★★☆
pandas道場へようこそ!この道場では、Pythonでデータ分析を進めるにあたって欠かせないツールの一つとしてその地位を確立している、オープンソースライブラリ「pandas」を学びます。pandasはデータ分析の過程において作業の大半を占める、データの前処理や探索的分析を柔軟かつ効率的に行うための高機能なデータ構造と各種ツールを提供しています。
Mission 1
Numerical Python (NumPy) はPythonで数値計算を高速に行うためのオープンソースのライブラリです。NumPyは計算をベクトルや行列などといった配列に対する演算として記述 (ベクトル化) することにより、計算時間を大幅に高速化させることができます。
pandasはNumPyが提供する機能を基に作られており、その特徴の多くを共有しています。したがって、pandasを学ぶ前にまずNumPy配列について学習していきましょう。
このタスクでは、以下のトピックを扱います。
Mission 2
pandasでは、最も基本的なオブジェクトとしてSeriesと呼ばれるデータ構造が実装されています。
Seriesオブジェクトは内部に1次元のndarrayオブジェクトをデータとして格納しており、データの要素に効率的にアクセスするためのインデックスが割り当てられています。
Mission 3
pandasでは、Seriesの機能を2次元に拡張したDataFrameと呼ばれるデータ構造が実装されています。
DataFrameは、Seriesオブジェクトを辞書のように格納したオブジェクトと考えることができ、行や列に対して名前をつけたり、数学的な処理を行うことができます。また、Excelなどのスプレッドシートのような見た目の表形式のデータであり、pandasの主要なデータ構造です。
このタスクでは、以下のトピックを扱います。
Mission 4
pandasでは、ファイルに対して直接操作を行うことができます。
人手でファイルを開いて処理する必要がなく、プログラム上で高速に処理することができるので、作業時間を短縮することが可能です。
このタスクでは、以下のトピックを扱います。
Mission 5
データ分析を行う際には、データを扱いやすいようにきれいにしておく必要があります。データの中に、欠損値が含まれていたり、重複する部分があると、正しく予測モデルを構築することができません。
したがって、欠損値があれば、これを穴埋めしたり、別の値に置換するなどの処理が必要です。
このタスクでは、以下のトピックを扱います。
Mission 6
データを分析する上で、1つのSeriesまたはDataFrameオブジェクトだけではなく、複数のオブジェクトを組み合わせてデータを確認することがあります。その際に、データの結合や形状変換といった処理が必要になります。
このタスクでは、以下のトピックを扱います。
Mission 7
探索的データ分析における典型的なパターンの一つとして、"Split-Apply-Combine"と呼ばれる処理の流れに従ってデータを操作することがあります。
1. データを独立したグループに分割 (Split)
2. 各グループに対して関数を適用 (Apply)
3. 適用された結果を結合 (Combine)
そして、分割した各グループに対して、大きく次の3つの操作を組み合わせて適用することができます。
- Aggregation: グループをいくつかの統計量に集約する
- Transformation: グループの各要素を変換する
- Filteration: 特定の条件を満たすグループを抽出する。
pandasではgroupby()関数を使用することで、これら一連の操作を行うことができます。
このタスクでは、以下のトピックを扱います。
Mission 8
pandasには可視化のためのグラフ描画機能が実装されており、各種プロットを簡単に行うことができます。
これらの機能は内部でmatplotlibというパッケージを使用しており、pandasによるプロットの結果は全てmatplotlib単独で再現可能です。これは、pandasが直接グラフを描画するのではなく、グラフをどのように描画するかをmatplotlibに伝えていることを意味します。
pandasの描画機能を用いれば、データの読み込みから可視化までといった一連の分析をpandas内で完結させることができ、便利です。