Python

PythonのPandasの使い方について簡単にまとめておく!

pandas
ウマたん
ウマたん
本記事では、Pythonで頻繁に使われるPandasについて簡単にまとめておきたいと思います!データの読み込みや前処理や集計、可視化などによくつかわれるPandasについてしっかりおさえておきましょう!また最後にはPandasを含めたPythonの基礎文法の勉強方法についてまとめておきますよ!

こんにちは!

データサイエンティストのウマたん(@statistics1012)です。

データサイエンスにおいて非常に重要なのがデータの前処理加工や可視化の段階。

そんなデータ加工や可視化に非常に有用なのがPythonのPandasというライブラリです。

この記事では、そんなPandasについてまとめていきつつ頻繁に使う記法について自分への備忘録も兼ねてまとめておきたいと思います。

より詳細は、Pandasの公式ドキュメントもしくはQiitaの記事を参考にしてみてください。

ここではサクッとピックアップしてまとめていきます。

ロボたん
ロボたん
Pandasは非常によく使われるライブラリだから覚えておきたいよね!
ウマたん
ウマたん
そうだね!Pandasくらいはソラでコーディングできるようにしておこう!

Pandasの基本情報

Pandas

Pandasは誰でも無料で使えるオープンソースであり、データ分析を行う上で必須なライブラリです。

最も使う機会が多いライブラリの1つでもあるので必ずおさえておきましょう!

データ分析ではモデル構築に焦点が当てられガチな節もありますが、正直最も時間を費やすのはデータの加工・集計・可視化です。

その役割を担うのがPandasであり、Pandasを使えば簡易的な記法かつ高速で処理することができるのです。

数多くの処理がありますが、ここではメイン処理として以下のようなタイプに分けてまとめていきます。

・データの読み込み
・データの構造やカラムを確認
・行/列のデータを確認・抽出したい
・データの結合
・データ集計・加工
・データの可視化

それでは、細かく見ていきましょう!

Pandasでデータの読み込み

まずは、データの読み込みが大事ですね!

当たり前ですが、Pandasはインポートしないと使えません。

ウマたん
ウマたん
忘れずにインポート!

ほぼpdで定義されることがほとんどなので以下pdと定義してpdで呼びます。

pd.read_csv()

データの読み込みにはread_csv()を使います。

データを読み込む時は、慣例でdf(データフレーム)と定義することが多いですが何でも問題ないです。

分かりやすい名前を付けておきましょう。

pd.read_exel()

基本CSV形式で読み込みますが、xlsx形式のデータも読み込むことが可能です。

xlrdをインストールしておいてください。

基本的にcsv形式と同様の記法になりますが、

シートを指定して読み込むこともできます。

シート名を指定しない場合は、最初のシートだけが読み込まれることになります。

データ構造やカラムを確認

続いてデータ構造やカラムを確認していきましょう!

ここでは実際にデータがあった方が分かりやすいので、Kaggleで有名なタイタニックのデータセットを使用します。

ちなみにpandasには既存のサンプルデータセットは入っていないのですが、seabornというライブラリを使えばサンプルデータセットを読み込むことが可能です。

タイタニックのデータであれば以下のように記述することで読み込みが可能。

これで準備万端!実際にデータを確認してみましょう!

df.head()

ざっとデータ構造を確認する時に使います。

デフォルトだと最初の5行を表示するようになっています。

pandas

数値を入れることでその行分を表示してくれますよー!

df.tail()

逆に下から表示したい時はこっち。

pandas

df.shape

データフレームの行×列数を知りたい時にこちらを使います。

(891, 15)

pd.columns()

カラム名を確認したい時はこれ!

Index([‘survived’, ‘pclass’, ‘sex’, ‘age’, ‘sibsp’, ‘parch’, ‘fare’,
‘embarked’, ‘class’, ‘who’, ‘adult_male’, ‘deck’, ‘embark_town’,
‘alive’, ‘alone’],
dtype=’object’)

df.unique()

ある項目のユニークな値の種類を確認することができます。

以下のように出力されます。

array([3, 1, 2], dtype=int64)

パッセンジャーズクラス(pclass)は1~3の3つあるということが分かりました。

行・列のデータを確認・抽出したい

続いて行・列のデータを確認・抽出してみましょう!

df.loc[]

df.locは任意の名称を指定して行・列から好きなようにデータを抽出することができます。

df.iloc[]

一方でdf.iloc[]では、インデックス番号で指定して抽出することができます。

iloc(index-location)です。

複数データを結合したい

複数のテーブルデータを結合したい場合。

SQLだとJOIN句で行うこの処理はPythonだとmergeを使って実行できます。

pd.merge()

ぐう、タイタニックのデータはMerge用には作られていないのでイメージで紹介しますね。

df_aとdf_bというPandasデータフレームがあった時、それらは以下のようにマージすることができます。

この時、あるカラムをキーにして結合したい場合は以下のように記述することで可能です。

特に指定がないときは、共通項目すべてがキーになります。

Inner join、Left join, right joinなどはパラメータhowで指定できます。

pd.concat()

concatでも同様にデータフレームの結合が可能です。

Mergeでは横結合であったのに対してconcatは縦結合も可能です。

mergeとconcatの違いはイマイチ分かりにくいのですが、concatは縦方向の結合もすることができ、mergeはキーを指定して柔軟に結合することができます。

以下の記事が詳しいです。

データ集計・加工

続いてデータの集計・加工について見ていきましょう!

集計・加工の延長線上にはデータ分析において非常に重要な特徴量エンジニアリングがあります。

特徴量エンジニアリング
機械学習で重要な特徴量エンジニアリングとは?当サイト【スタビジ】の本記事では、精度の高いモデルを構築する上で非常に重要な特徴量エンジニアリングについて簡単に解説していきます。特徴量エンジニアリングの流れやテクニックを知っているのと知っていないのとではたたき出すアウトプットの質が全く違うので必ず理解しておきましょう!...

データを上手く集計・加工してモデル構築時の精度を上げましょう!

df.describe()

簡単に要約統計量を確認したい時はこれ!

pandas

df.value_counts()

出現の回数を測ることができます。

例えばタイタニックのデータに対して以下のように記述すると、

このように出力されます。

0 549
1 342

生死ラベルの出現回数が分かります。

df.groupby()

ある項目をキーにして集計することができます。

例えば以下のように記述すると生死でグルーピングした際の年齢の平均が集計できます。

0 30.626179
1 28.343690

df.sort_values()

ある値をキーにしてデータフレームをソートすることができます。

pandas

年齢で昇順にソートできているのが分かると思います。

降順にしたい場合は、以下のようにすれば大丈夫です。

df.isnull()

欠損値処理はデータ分析において非常に重要な部分。

欠損値をどのように処理するのかによって明暗が分かれることも多々あります。

まずは、欠損値を確認しましょう!

によって各カラムの欠損値の数を集計することができます。

survived 0
pclass 0
sex 0
age 177
sibsp 0
parch 0
fare 0
embarked 2
class 0
who 0
adult_male 0
deck 688
embark_town 2
alive 0
alone 0
dtype: int64

df.dropna()

続いて欠損値を処理する方法について見ていきましょう!

dropnaを使うことで欠損値が1つでも入っている行を削除することができます。

処理後の行数を確認してみると、

(182, 15)

182行に減っていることが分かります。

df.fillna()

fillna()を使うことで欠損値を埋めることができます。

0 22.0
1 38.0
2 26.0
3 35.0
4 35.0
5 NaN
6 54.0
7 2.0
8 27.0
9 14.0
Name: age, dtype: float64

年齢の欠損値を埋めてみましょう!

0 22.0
1 38.0
2 26.0
3 35.0
4 35.0
5 0.0
6 54.0
7 2.0
8 27.0
9 14.0
Name: age, dtype: float64

pd.get_dummies()

ダミー変数化とは多クラスのカテゴリーを01ラベルで表す特徴量として展開すること。

例えば以下のようなケースだと、

カテゴリ
A
B
A
C
・・・
A
B

ダミー変数化をすることにより以下のようなデータ構造に変換されます。

AB
10
01
10
00
10
01

この時、Aが0でBが0であればCということが明示的に分かるのでCのカラムは必要ありません。

逆にCのカラムを追加してしまうと変数同士の重複が起き「多重共線性」という問題が生じ推定精度が不安定になります。

pd.get_dummies()を用いることで簡単にダミー変数を生成することができます。

pandas

df.corr()

corr()で相関関係を簡単に確認することが可能です。

 

pandas

Pandas勉強方法

PC

Pandas含めPythonの勉強法は、実際にデータ分析を行う上で非常に重要です。

ただ目的のないPandas勉強は正直意味がないしモチベーションは続きません。

ここでは、pandas含めPythonの基礎文法の勉強法についてまとめておきます!

自分で進められる自信がある人

自分で進められる自信のある人はUdemyの教材を視聴もしくはPyQを自力で進めた後Kaggleに挑戦してみることをオススメします。

Udemyは世界最大のオンライン学習プラットフォームで非常に分かりやすく色んなコースがあるので自分のやりたいことが明確にきまっている人にオススメ!

Udemy
【体験談】評判の良いUdemyを実際に20コース受けてみてレビュー!当サイト【スタビジ】の本記事では、世界最大のオンライン学習プラットフォームであるUdemyのメリット・デメリット・評判・口コミについてまとめていきます!実際にPython関連のコースを20個受講して分かった体験談をもとにお伝えしていきます。...
\30日間返金無料/

PyQはPython特化のオンライン学習サービスで、ひたすらPythonコーディングを行うのにオススメです。

データサイエンスの理論まわりはあまり深く扱っていません。

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

そしてある程度Pythonの素地が出来上がった後は、データ分析コンペティションのKaggleに挑戦してみることをオススメします!

Kaggleでは企業から提供されるデータを基にお題に沿って精度の高いモデルを構築していきます。

【初心者向けKaggle入門】Kaggleサブミットの前準備と勉強法!当サイト【スタビジ】の本記事では、Kaggleについて解説していきKaggleに挑戦するまでにどのようなことを勉強しておいたらよいのか丁寧に解説していきます。ある程度データサイエンスの土台が出来た後はKaggleに挑戦し、世界各国の猛者と凌ぎを削りましょう!...

自分で進められるモチベが保てない人

自分で進められるモチベが保てない人には半ば強制的に勉強を行うプログラミングスクールをオススメします!

僕自身、あまりモチベーションをコントロールするのが上手くない方なのでプログラミングスクールを受講しています。

Pythonの基本文法を学ぶならAI特化のAidemy Premium Planがオススメです。

複雑なアプリケーション作成までは出来ませんがPythonの基本文法からディープラーニング実装までは非常に手厚くサポートされています。

Aidemy
【体験談】「Aidemy Premium Plan」の口コミ・評判が良さそうだから受講してみた!当サイト【スタビジ】の本記事では、AidemyのPremium planについて実際に自分で受講してみた体験談をもとに分かったこと・メリット・デメリットについてまとめていきます。僕の主観だけでなく口コミや評判に関してもまとめていくのでAidemyを検討している人はぜひ参考にしてみてくださいね!...

Pandas まとめ

Pandasについて見てきました!

Pandasはよく使われるライブラリでPythonを使う上では、必ずおさえておきたい内容ですね!

ぜひPandasを使ってみましょう!

ロボたん
ロボたん
Pandasをいかに使いこなせるかがデータの前処理時間の短縮につながるね!
ウマたん
ウマたん
pandasの基本文法はしっかりおさえておきましょう1

Pythonの勉強方法については以下の記事でまとめています!

【独学入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!