PythonライブラリのPandasを徹底解説!

PythonライブラリのPandasを徹底解説!Pandas
ゆうすけ
ゆうすけ

PythonライブラリのPandasについて詳しく知りたいです。

資格マフィア
資格マフィア

Pandasは主にデータ分析などでよく使われる。
最近、注目度が高まってきている人気ライブラリだ。


✔️ 本記事のテーマ

Pandasについて(Pythonライブラリ)


✔️ 読者さんへの前置きメッセージ

本記事は「Pandas(Pythonライブラリ)」について書いています。

 

この記事を読むことで「Pandasの使い方や便利な関数」を理解できます。

 

Pandasはデータ分析によく使われるPythonライブラリです。

 

ただし、Pandasはその便利さゆえに機能が多く、使い方に迷うこともあるでしょう。

 

そこでこの記事ではPandasの使い方を関数ベースで解説します。


また、イメージしやすいように、実際のデータ分析を行う手順に解説しています。

 

よく使う関数をまとめたので、この記事で解説している関数さえ知っておけば、ある程度は使うことができます。

 

それでは、Pandasの使い方を解説していきましょう。

 

PythonでPandasを使うためには(準備)

PythonでPandasを使うためには(準備)

Pandasはサードパーティ製のPythonライブラリです。

 

そのためPythonからPandasを使えるようにするには、いくつかの準備が必要です。

 

具体的には、以下の作業が必要です。

  • pandasを環境にインストールする
  • pandasをimportする

順番に詳しく解説しましょう。

 

pandasを環境にインストールする

まず使用しているPython環境にPandasライブラリをインストールしましょう。

 

ターミナル(Windowsならコマンドプロンプト)で以下のコマンドを実行すればOKです。

pip install pandas
# 場合によってはpip3 install pandas

 

「Successfully installed ~」と表示されていれば、Pandasライブラリのインストールが成功しています。

pandasをimportする

Pandasライブラリのインストールが完了したら、次はPythonモジュールでimportしましょう。

 

importをすることでそのモジュールの中で、pandasライブラリを使うことができるようになります。

 

モジュールの一番上に以下の記述を書けばOKです。

import pandas as pd

 

なお、pandasライブラリは一般的に「pd」という名称でimportされます。

PythonでPandasデータを確認する

PythonでPandasデータを確認する

PandasのDataFrameはExcelの表のようなデータ形式です。

df = pd.DataFrame(
    {
        '社員番号': [345, 11, 567, 201, 108, 78, 22, 498],
        '役職': ['リーダー', '部長', '平社員', 'リーダー', '課長', '課長', '部長', '平社員'],
        '氏名': ['高橋 F助', '山田 A郎', '山本 H二', '伊藤 E男', '鈴木 C太', '田中 D平', '佐藤 B夫', '渡辺 G朗']
    }
                  )
 社員番号役職氏名
0345リーダー高橋 F助
111部長山田 A郎
2567平社員山本 H二
3201リーダー伊藤 E男
4108課長鈴木 C太
578課長田中 D平
622部長佐藤 B夫
7498平社員渡辺 G朗

 

なお、PandasのDataFrameについては
PandasのDataFrameを徹底解説【コード付き】」の記事で詳しく解説しています。

 

Pandasのデータを確認するには以下の方法が便利です。

  • df.headを使う
  • df.tailを使う
  • 列名で指定する
  • 行数で指定する

順番に詳しく解説していきましょう。

 

df.headを使う

DataFrameのheadメソッドを使うことで、簡単にDataFrameの中身を確認することができます。

 

headメソッドは対象のDataFrameの先頭5行だけを表示します。

 

df.head()
 社員番号役職氏名
0345リーダー高橋 F助
111部長山田 A郎
2567平社員山本 H二
3201リーダー伊藤 E男
4108課長鈴木 C太

df.tailを使う

tailメソッドも便利なメソッドです。

 

tailメソッドは対象のDataFrameの後ろ5行だけを表示します。

 

df.tail()
 社員番号役職氏名
3201リーダー伊藤 E男
4108課長鈴木 C太
578課長田中 D平
622部長佐藤 B夫
7498平社員渡辺 G朗

列名で指定する

DataFrameは表形式のデータなので、列名を指定して表示することができます。

 

以下のように指定することで、任意の列だけ抜き出して表示することができます。

 

df['氏名']
0高橋 F助
1山田 A郎
2山本 H二
3伊藤 E男
4鈴木 C太
5田中 D平
6佐藤 B夫
7渡辺 G朗

行数で指定する

逆に行数を指定して表示することもできます。

 

DataFrameの行数を指定するときは、locメソッドを使います。

 

例えば、1行目だけ表示して、データの構成を確認したいときは以下のようにします。

 

print_df = df.loc[1]

python_pandas_任意行表示

他にも例えば、1行目から3行目まで表示することも可能です。

 

print_df = df.loc[0:2]
 社員番号役職氏名
0345リーダー高橋 F助
111部長山田 A郎
2567平社員山本 H二

PythonでPandasデータを整形する

PythonでPandasデータを整形する

Pandasのデータを整形するときは以下の方法を使うときっと上手くいくでしょう。

  • 列名を変更する
  • 新たな列を追加する
  • 値を昇順に並び替える
  • 値を降順に並び替える

順番に詳しく解説していきましょう。

列名を変更する

表形式のDataFrameの列名を後から変更することも可能です。

 

以下のようにコードで列名を自由に変更することができます。

 

なお、引数inplaceをTrueに指定しないと、新たなDataFrameが生成されます。

df.rename(columns={'役職': '肩書き'}, inplace=True)
 社員番号肩書き氏名
0345リーダー高橋 F助
111部長山田 A郎
2567平社員山本 H二
3201リーダー伊藤 E男
4108課長鈴木 C太
578課長田中 D平
622部長佐藤 B夫
7498平社員渡辺 G朗

新たな列を追加する

以下のようにdf[‘新たな列名’]とすることで、DataFrameに新たな列を追加することができます。

 

なお、列を追加する関数として、assign()メソッドも用意されていますが、上記の方法のほうが簡単です。

df['性別'] = '男'
 社員番号役職氏名性別
0345リーダー高橋 F助
111部長山田 A郎
2567平社員山本 H二
3201リーダー伊藤 E男
4108課長鈴木 C太
578課長田中 D平
622部長佐藤 B夫
7498平社員渡辺 G朗

値を昇順に並び替える

DataFrameはExcelのように、値を使って並び替えを行うことができます。

 

sort_values関数を使用して、引数byでどの列を使うかを指定しましょう。

 

ascending=Trueとすることで、昇順並び替えになります。

df.sort_values(by="社員番号", ascending=True)
 社員番号役職氏名
111部長山田 A郎
622部長佐藤 B夫
578課長田中 D平
4108課長鈴木 C太
3201リーダー伊藤 E男
0345リーダー高橋 F助
7498平社員渡辺 G朗
2567平社員山本 H二

値を降順に並び替える

逆に降順に並び替えたいときは、ascending= Falseとすることで、降順並び替えになります。

df.sort_values(by="sales", ascending=False)
 社員番号役職氏名
2567平社員山本 H二
7498平社員渡辺 G朗
0345リーダー高橋 F助
3201リーダー伊藤 E男
4108課長鈴木 C太
578課長田中 D平
622部長佐藤 B夫
111部長山田 A郎

PythonでPandasの欠損データを処理する

PythonでPandasの欠損データを処理する

データ分析を行うときは欠損データが邪魔になるでしょう。

 

DataFrameには欠損データを処理する関数も用意されています。

 

以下の関数を使うことで欠損データを削除する(または埋める)ことができます。

  • df.isnull()
  • df.fillna()
  • df.dropna()

順番に詳しく解説していきましょう。

df.isnull()

まず、df.isnullを使って、欠損値があるかを確認しましょう。

 

df.isnullを使うと、DataFrameの要素を欠損値ならTrue、欠損値でなければFalseに置き換えることができます。

 AB
01 
11112
2 22
df.isnull()
 AB
0FalseTrue
1FalseFalse
2TrueFalse

df.fillna()

欠損値を埋めるには、df.fillnaが簡単でかつ強力です。

 

df.fillnaに値を渡すことで、その値で欠損値を一律に埋めることができます。

df.fillna(999)
 AB
01999
11112
299922

 

さらに、df.fillnaでは、列ごとに埋める値を指定することができます。

df.fillna({'A': 100, 'B': 200})
 AB
01200
11112
210022

df.dropna()

欠損値を置き換えるのではなく、そのまま削除することもできます。

 

df.dropnaを使えば、欠損値が含まれる行を削除することができます。

 AB
11112
df.dropna()

 

なお、引数で「how=’all’」と指定すれば、全ての列の値が欠損している行のみ削除することができます。

df.dropna(how='all')
 AB
01200
11112
210022

PythonでPandasデータを集計する

PythonでPandasデータを集計する

groupby関数を使うことで、
DataFrameに対して、グループ分けして、統計量を算出することができます。

 

例えば、以下のようなDataFrameを用意します。

 役職給与
0リーダー250,000
1部長1,000,000
2平社員200,000
3リーダー300,000
4課長400,000
5課長450,000
6部長900,000
7平社員220,000

このDataFrameに対して、「役職」列の値を使って、グループ分けを行います。

 

groupby関数によって役職ごとの平均や合計、最大値や最小値を算出することができます。

df.groupby('役職').mean()
役職給与
リーダー275,000
平社員210,000
課長425,000
部長950,000
df.groupby('役職').max()
役職給与
リーダー300,000
平社員220,000
課長425,000
部長1,000,000
df.groupby('役職').min()
役職給与
リーダー250,000
平社員200,000
課長400,000
部長900,000

Pandasについてもっとスキルをつけるなら

Pandasについてもっとスキルをつけるなら

今回は、PandasでExcelデータを読み込む方法について解説しました。

 

Pandasはデータサイエンスの世界でよく使われるライブラリです。

 

Pandasについて基礎から実用まで学ぶためには以下の書籍がオススメです。

 

この書籍はPandasライブラリについて徹底解説されています。

Pandasライブラリは表計算ライブラリの使い方を理解していないと
その威力を存分に発揮できないのですがこの書籍はこの辺を上手に説明してくれています。

また、ライブラリ自体の解説だけでなく
機械学習において大事なデータクレンジングの方法など実践的な内容まで解説されています。

 

Pandasについて学びたい方や機械学習の精度を上げたい方にはオススメの書籍です。

エンジニアとしての自身の価値をチェックする(完全無料)

エンジニアとして、

自分の価値がどれくらいのものかご存知でしょうか?

 

エンジニアとしてIT業界に身を置いていると

今の会社でずっと働くのか、フリーランスとして独立するのか …

と様々な選択肢があります。

 

どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも

自身の価値を知っておくことはとても重要です。

 

TechClips ME では、

職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。

▼▼▼▼▼

▲▲▲▲▲

しかもTechClips MEでは想定年収を企業から提示してくれるので、

自身の価値を数字で分かりやすくたしかめることができます。

 

登録はもちろん完全無料なので、一度登録してみると良いかもしれません。

 

コメント

タイトルとURLをコピーしました