データ分析ライブラリ:pandasの使い方

講師
講師

Pythonで最も活用されているデータ分析ライブラリに、pandasがあります。
pandasは、データの読み込み、加工、書き出しなど、多くのデータ処理に使われています。
本記事では、pandasの基本的な使い方をご紹介します。

1.pandasをインストールする

pandasをインストールしましょう。ターミナルを起動し、次のコマンドを実行します。

$ pip install pandas

2.pandasをインポートする

pandasをインポートします。

import pandas as pd

pandasは一般的に、pdとしてインポートします。
コーディングで毎回「pandas」と書くのは非効率ですので、「pd」と省略して使いやすくしています。

3.Series

Seriesは1次元データです。
Seriesをpandasで作って表示してみます。

series = pd.Series(["A", "B", "C", "D", "E"])
series

0    A
1    B
2    C
3    D

4    E

左の「0, 1, … 4」の数字は自動で割り当てられたインデックスです。データタイプはオブジェクトになっています。

4.DataFrame

DataFrameで、2次元データを作成することができます。列でデータ型を統一しなければ、データ型がオブジェクトになり数値計算などが行えないので、注意しましょう。

DataFrameを作ってみます。

df = pd.DataFrame(
    [["A", 10, True],
    ["B", 20, False],
    ["C", 30, True],
    ["D", 40, False],
    ["E", 50, True]])

df

5.head()とtail()

head()メソッドを使うと、先頭5行のみを表示できます。

df = pd.DataFrame(np.arange(50).reshape((10, 5)))
df
# 先頭5行のみを表示
df.head()
# 末尾5行のみを表示
df.tail()

6.インデックス・カラム名を指定する

インデックスとカラム名を指定して、出力結果を見やすくすることができます。

df = pd.DataFrame(
    np.arange(6).reshape((3, 2)),
    index = ["1行目", "2行目", "3行目"],
    columns=["1列目", "2列目"]
)
df

7.データを抽出する

指定した行、列のみを表示したり、特定の値のみを表示したりできます。 適当なデータを作成します。

df = pd.DataFrame(
    np.arange(20).reshape((4, 5)),
    index = ["1行目", "2行目", "3行目", "4行目"],
    columns=["1列目", "2列目", "3列目", "4列目", "5列目"]
    )
df

指定の列を表示します。

# 2,3列目を表示
df[["2列目", "3列目"]]

指定の行を表示します。

# 1,2行目を表示
df[:2]

位置を指定して、特定の値を表示することも可能です。
下記の例は、2行目の2列目にある値を指定し表示しています。

# 特定の値を表示
df.iloc[1, 1]
# 6

8.データを読み込む・書き出す

pandasを使って、データを読み込んだり、書き込んだりすることができます。
ここでは、CSVファイル、Excelファイル、そしてWebサイトのHTML内のテーブル要素を読み込む方法をご紹介します。

データの読み込み方法

  • CSVファイル
df = pd.read_csv("example.csv", encoding="utf-8")
df
  • Excelファイル
df = pd.read_excel("example.xlsx")
df
  • WebサイトのHTML内のテーブル要素
# HTML内の全table要素を抜き出す
tables = pd.read_html("https://xxx.com")

# 1つ目のtable要素を取得、表示
df = tables[0]
df

データの書き込み方法

まずデータを読み込みDataFrameを作成し、ファイルに書き出します。

  • CSVファイル
df = pd.read_csv("example.csv", encoding="utf-8")
df.to_csv("data.csv")
  • Excelファイル
df = pd.read_excel("example.xlsx")
df.to_excel("data.xlsx")

データの整形

Pandasを使って読み込んだデータは、条件抽出、並べ替えをするなどのデータ整形が可能です。基本的な整形方法をご紹介します。
ここでは、以下の家族データを使用していきます。

  • 条件抽出

歩数が10000歩以上の行のみを抽出します。

df.query('歩数 >= 10000')

複数条件で抽出することも可能です。
例えば、「歩数が5000歩以上で、年齢が25歳以上」の行を抽出する場合は以下の通りです。

df.query('歩数 >= 5000 and 年齢>= 25')
  • 並べ替え

sort_valuesメソッドを使って、年齢順に並べ替えることも可能です。

df.sort_values(by="年齢")

歩数順で並べ替えることも可能です。

df.sort_values(by="歩数")

講師
講師

いかがでしたか?pandasはデータ分析を行ううえで欠かせないライブラリなので、是非活用してみてくださいね。


Startlabのプログラミング入門コースは、Python未経験者・初学者にもわかりやすいカリキュラムと続けやすいサポート体制が魅力。自分の学習目的に合っているか、どういった知識を身に付けることができるのかなど、無料カウンセリングでぜひご相談ください!カウンセリングは毎日実施中、お待ちしております!

無料カウンセリングを予約する