【Pandas入門】Pythonのデータ分析ライブラリ「Pandas」を解説!

PandasはPythonで利用できる、データ解析のためのライブラリです。

Pandasの特徴は、Series、DataFrame、Panelといった「ラベルを持った配列」を利用できることです。それぞれのラベルを用いてデータを操作できるほか、データ解析に利用できるさまざまな機能が用意されています。

この記事では、Pandasとは何かといった基本的な知識から、Pandasの特徴やメリット、インストールやデータ解析の方法までご紹介します。

Pythonで使える「Pandas」とは?何ができる?

PandasはPythonのライブラリのひとつです。Pandasには、Pythonによるプログラミングにおいて、

  • データの読み込みや統計量の表示
  • データのグラフ化
  • データ分析

などを行う際に頻繁に使用するコードが集められています。Pandasを用いることで、これらのコーディングを効率的に行うことが可能です。

PandasはCSVやテキスト、エクセル、インターネットの株価情報等、さまざまな形式のデータを読み込むことができます。さらに、データの並べ替えや欠損値の補完などの機能も供えています。

Pythonで機械学習のプログラミングをする場合には、前処理として行う学習データの整形に、Pandasを用いることが多いです。

Pandasの概要イメージ

Pandasはオープンソース(BSDライセンス)で公開されており、無料で利用できます。BSDライセンスのもとでは、著作権表示と免責条項の明記をすれば、再利用や再配布も自由に行えます。

Pythonについて詳しく知りたい方は「Pythonとは?Pythonを使ってできること・特徴を詳しく解説!」を併せてご覧ください。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Pandasを使うメリット

Pandasの最大のメリットは、データの読み込みや切り出し、並び替え、欠損値の補完など、データ処理に役立つさまざまな機能を利用できることです。

PandasにはDataFrameというオブジェクトが用意されています。DataFrameオブジェクトは数値だけでなくテキストにも対応しており、数値とテキストが混在しているデータにも対応しています。

また、DataFrameオブジェクトには、

  • DataFrame.isnull().sum()        :欠損値の確認
  • DataFrame.fillna()                   :欠損値の補完
  • DataFrame.dropna()                :欠損値のある行を削除

など、欠損値を操作する関数も多数用意されています。

これらのデータは、

  • read_csv()                  :CSV形式ファイルを読み込み
  • read_excel()              :Excelファイルを読み込み
  • read_json()                :JSON文字列を読み込み

などの関数で読み込むこともできますし、

  • pandas.DataFrame()  :DataFrameに引数のデータを格納

などの関数で、DataFrameに格納することができます。

統計処理に利用するデータは、CSVやExcelファイルになっていることも多いため、Pandasでデータを前処理する際に、上記のような関数がよく利用されます。

また、グラフ描画ライブラリであるMatplotlibを利用することで、DataFrameに格納したデータを

  • DataFrame.hist()        :ヒストグラム
  • DataFrame.plot()        :散布図、線グラフ
  • DataFrame.bar()         :棒グラフ
  • DataFrame.boxplot()  :箱ひげ図

などのグラフとして可視化することができます。

Matplotlibについて詳しく知りたい方は、「Pythonでグラフ描画する方法を解説。Matplotlibを使えば簡単!」も併せてご覧ください。

このようにPandasは、ほかのライブラリと連携することで、さらに便利に利用することができます。

Pandasは連携するとさらに便利に

 

Pandasで扱えるデータ構造をご紹介!

Pandasは、Pythonで行うデータ解析を支援するためのライブラリであり、さまざまなデータを扱います。それに伴い、PandasではSeries、DataFrame、Panelといったデータ形式が用意されています。

ここでは、各データ形式の概要について解説します。

Pandasで扱えるデータ構造①Series

SeriesはPandasで扱うことができる1次元配列です。C言語やPythonで扱う、通常の1次元配列と違うのは、ラベルを付与できることです。

Seriesにつけられたラベルをindexと呼び、indexを用いてデータにアクセスすることができます。後述する2次元配列であるDataFrameから行(または列)データを抽出すると、Series型になります。

seriesのindexとdata

Pandasで扱えるデータ構造②DataFrame

DataFrameはPandasで扱う2次元配列です。DataFrameから行や列を抽出すると、Series型の配列になります。DataFrameのデータにはindexラベルに加えて、columnsラベルを付与することができます。

indexは「行ラベル」、columnsは「列ラベル」と呼ぶこともあります。

Series型と同様に、DataFrame型ではindexやcolumnsを用いてデータにアクセスすることができます。

また、

  • DataFrame.index.values()
  • DataFrame.columns.values()

を用いて行数や列数を取得することができます。

  • DataFrame.sort_index()

など、ラベルによりソートするような関数も用意されています。

dataframeのindexとcolumnsの関係

Pandasで扱えるデータ構造③Panel

PanelはPandasで扱うことができる3次元配列です。Panelはitems、major_axis、minor_axisの3つのラベルがあります。DataFrameでindex、columnsに対応するのがmajor_axis、minor_axisです。

3次元配列は直感的に操作しづらく、使用頻度は低いですが、時系列データなどを扱う際にはよく利用されます。

Panelの構造

 

Pandasをインストールしてみよう

Pandasを利用するには、Pandasをインストールする必要があります。Pandasのインストールには直接インストールする方法と、Anacondaなどのディストリビューションを利用する方法があります。

既にPythonを学習しており、開発環境がある程度整っているなら、コマンドラインで以下のように入力すれば、Pandasを単体でインストールすることができます。

Python初学者で、これからもPythonを利用してプログラミングをする方には、Anacondaなどのディストリビューションをインストールするのがおすすめです。

ディストリビューションとは、目的に応じたプログラムを集めて、簡単に環境構築できるようにまとめたものです。

Anacondaにはさまざまなパッケージや仮想環境マネージャが付属されており、Pandas以外にも

  • NumPy
  • SciPy
  • Matplotlib
  • Scikit-Learn
  • Jupyter

などの代表的なライブラリも併せて環境構築できます。

Anacondaでライブラリのインストールをする場合は、「Environments」を開き、「Not installed」の検索ボックスに目的のライブラリ(この場合はPandas)を入力して、「Apply」をクリックします。

Pandasの関数やオブジェクトを利用する場合は、プログラム中でpandasをインポートする必要があります。

Anacondaについてより詳しく知りたい方は「AnacondaでPythonの環境構築!概要~インストール方法まで解説」をご覧ください。

 

Pandasを使ってデータ分析をしてみよう!順を追って解説

以下では、Pandasの基本的な使い方についてまとめます。

Pandasを使用する場合は、プログラム冒頭に

と記述してインポートする必要があります。pdの部分は任意ですが、Pandasを用いる場合は、慣習的にpdとするのが一般的です。

ここではpdという名前でPandasを呼び出すように記述しています。

DataFrameオブジェクトの作成

  A B
a 1 2
b 3 4
c 5 6
d 7 8

以上のようなDataFrameオブジェクト「df」を生成する場合は、

のように記述します。

CSVファイルを読み込む場合は、

のように記述します。この場合は「,」を区切りにしてファイルを読み込みます。

データの取り出し

特定の列を処理したい場合には、以下のように記述します。

これで「A」列のデータについて扱うことができます。

最初や最後の2行を表示したい場合は、以下のように記述します。

並び替え・結合

「A」列を昇順で並び替える場合は、以下のように記述します。

ascending = falseとすると降順になります。

DataFrame型の変数df1, df2があるとき、

とすれば、結合が可能です。

集計

とすれば、「A」列に、どのデータがいくつあるかを表示してくれます。

他にもさまざまな集計機能が用意されています。

 

今回は、Pandasについて解説しました。PandasはPythonで利用できるデータ解析のためのライブラリです。Pandasをインポートすることで、Series、DataFrame、Panelといったデータ型や、それらを操作するための関数を利用できるようになります。

Pythonを使って機械学習のプログラミングをするなら、Pandasを利用すると、効率的に進めることができます。ぜひ利用してみてください。