データ分析ライブラリ: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未経験者・初学者にもわかりやすいカリキュラムと続けやすいサポート体制が魅力。自分の学習目的に合っているか、どういった知識を身に付けることができるのかなど、無料カウンセリングでぜひご相談ください!カウンセリングは毎日実施中、お待ちしております!