データ分析のライブラリ!Pandasとは【初心者向け】

データの統計量を表示したり、グラフ化するなど、データ分析(データサイエンス)のライブラリPandasについて紹介しています。Pandasとは一体どんな機能を持っているのか、何ができるのか説明。実際に使用した説明も載せているので、よりイメージが湧くでしょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、Pythonのデータ解析用ライブラリであるPandasについて解説します。

Pandasを使うと、データの統計量を表示したり、グラフ化するなど、データ分析(データサイエンス)や機械学習で必要となる作業を簡単に行うことができるようになります。

Pythonでデータ分析を行うには、必須のライブラリなので、ぜひこの記事を参考に、Pandasの使い方を覚えましょう。

 

なお本記事は、TechAcademyのAIオンライン講座の内容をもとに作成しています。

 

目次

 

大石ゆかり

田島メンター!Pandasというのは何でしょうか?

田島悠介

Pythonのデータ解析用のライブラリだよ。Pythonでデータ分析や機械学習を行うには、必須のライブラリなんだ。

大石ゆかり

どのような機能があるのですか?

田島悠介

例を見ながら説明していくね!

Pandasとは

Pandasは、Pythonでデータ分析を効率的に行うためのライブラリです。Pandasはオープンソース(BSDライセンス)で公開されており、個人/商用問わず、誰でも無料で利用することができます。

Pandasを使うと、データの読み込みや統計量の表示、グラフ化など、データ分析に関する作業を容易に行うことができるようになります。また主要なコードはCythonまたはC言語で書かれており、Pythonだけでデータ分析を行うのと比較して、非常に高速に処理を行うことができます。

データ分析(データサイエンス)は、機械学習を行うまでの前処理(データの読み込み、クリーニング、欠損値の補完、正規化など)が、全ての作業の8〜9割を占めると言われています。Pandasを使うとそのような処理が効率的に行えるようになるため、Pythonで機械学習を行うには、Pandasは必須のライブラリとなっています。

 

[PR]機械学習で挫折しない学習方法を動画で公開中

Pandasを利用するには

Pandasを利用するには、Anacondaなどの開発環境のパッケージを使うのが簡単です。

Anaconda

Anacondaは、データ分析やグラフ描画など、Pythonでよく利用されるライブラリを含んだ開発環境です。

AnacondaにPandasをインストールするには、メニュー画面のEnvironmentsから、Not Installedを選択し、検索BOXに「Pandas」と入力します。一覧にPandasが表示されますので、チェックボックスで選択し、画面右下のApplyボタンを押すことでインストールすることができます。

また、今回は説明用にscikit-learnのサンプルデータセットを使用します。同様にscikit-learnとnumpy、matplotlibもインストールしておきましょう。

以降は、Jupyter Notebookをもとに、Pandasの使い方を説明します。

 

Pandasの使い方

Pandasを使う際は、初めにPandasライブラリをインポートします。併せてサンプルデータセットも利用できるようにしておきましょう。

# Pandas、及び必要なライブラリのインポート
import pandas as pd
from pandas import DataFrame
import numpy as np

# サンプルデータセットを取得する
from sklearn import datasets
boston = datasets.load_boston()

実行結果は特にありません。エラーがでなければ、正しくインポートされています。

次に、サンプルデータセットをPandasのDataFrame型に変換しておきます。なお、今回はサンプルデータセットを使いましたが、CSVデータを読み込むread_csvという命令も用意されています。

# PandasのDataFrame型に変換
df = DataFrame(boston.data, columns = boston.feature_names)
# 目的変数をDataFrameへ追加
df['MEDV'] = np.array(boston.target)

準備が整いました。それではPandasの命令を幾つか見ていきましょう。

 

データの概要を確認する

先頭5行を表形式で表示する

df.head()

実行結果は以下のようになります。

行列数を表示する

df.shape

実行結果は以下のようになります。

(506, 14)

細かい情報を表示する

dataset.info()

実行結果は以下のようになります。

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 21613 entries, 0 to 21612
Data columns (total 21 columns):
id               21613 non-null int64
date             21613 non-null object
...
sqft_living15    21613 non-null int64
sqft_lot15       21613 non-null int64
dtypes: float64(5), int64(15), object(1)
memory usage: 3.5+ MB

 

データの統計量を確認する

統計量を表示する

df.describe()

実行結果は以下のようになります。

countは件数、meanは平均値、stdは標準偏差、minは最小値、25%・50%・75%は四分位点、maxは最大値を表します。

その他の統計量を表示する

print("平均値:", df.MEDV.mean())
print("中央値:", df.MEDV.median())
print("分散:", df.MEDV.var())

実行結果は以下のようになります。

平均値: 22.5328063241
中央値: 21.2
分散: 84.5867235941

 

グラフを表示する

グラフ表示は内部でmatplotlibを利用します。

ヒストグラムを表示する

全てのデータだと時間がかかるため、100件で表示しています。

df.MEDV[:100].hist()

実行結果は以下のようになります。

その他、散布図や棒グラフ、箱ひげ図など、多くのグラフを描画することができます。

 

データを加工する

型を変換する

以下ではfloat型に変換しています。

df.MEDV.astype(float)

実行結果は以下のようになります。

0      24.0
1      21.6
2      34.7
3      33.4
4      36.2
5      28.7
(以下、略)

行・列を指定して取り出す

ixを利用することで、表の一部を取り出すことができます。

df.ix[:9][['AGE', 'MEDV']]

実行結果は以下のようになります。

列に対する演算を行う

df['MEDV2'] = df['MEDV'] * 2
df.head()

実行結果は以下のようになります。列同士の計算も簡単に行うことができます。

欠損値を補完する

欠損値とは、データに含まれる値が無い部分です。例えば、例えばCSVファイルをPandasを利用して読み込んだ時、要素の値が空白だと、欠損値とみなされます。欠損値はNaN(Not a Number)とも表現されます。

欠損値への対応としては、行または列を削除する、欠損値を0などに置き換える、といった方法があります。欠損値を0などに置き換えることを、欠損値の補完と言います。

欠損値を補完するには、fillna命令を使用します。

df.fillna(0, inplace=True)

実行結果はありませんが、データに含まれる欠損値が0で置き換わっています。

 

Pandasには、この他ピボットテーブルの作成、クロス集計、行列への関数の一括適用など、データ分析に必要な処理が多く含まれています。公式サイトなども参考にしてみてくださいね。

Pandas公式サイト

 

田島悠介

Pandasについて、理解は深まったかな?

大石ゆかり

概要やプログラムの書き方など、勉強になりましたー!

田島悠介

サンプルプログラムをもとに、いろいろ試して学習を深めるといいよ!

深層学習画像認識自然言語処理については、また別のところで説明するね。

大石ゆかり

分かりました。ありがとうございました!

 

今回は、Pythonのデータ解析用ライブラリのPandasについて解説しました。

これからPandasを勉強したい、機械学習を使って何か作ってみたいという方は最初に理解しておきたい内容でしょう。

 

また、オンラインのプログラミングスクールTechAcademyでは、AIオンライン講座を開催しています。

AI(人工知能)の構築に必要な機械学習・ディープラーニングについて実践的に学習することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。