Pandasの使い方を学ぶ!Python初心者のためのデータ分析ガイド

Pythonを学び始めた初心者にとって、Pandasはデータ分析の基本となる重要なライブラリです。

本記事では、Pandasの基本概念を初心者向けに解説し、さらに実用例を使ってその能力を見ていきます。 やさしく分かりやすい話語で説明するので、Pythonを使ってデータ分析に挑戦しましょう!

はじめに

Pandasとは何か、なぜ学ぶべきか

PandasはPythonでデータ分析を行うための強力なライブラリで、データの読み込みや処理、クレンジングを簡単に実現します。
その中核をなすのが、表形式データを操作できるDataFrameと1次元配列のSeriesというデータ構造です。
これらを利用することで、ExcelやSQLに似た直感的な操作をプログラミングで再現できます。

データ分析や機械学習に不可欠なPandasは、Pythonプログラマーにとって基礎スキルといえるでしょう。
初心者でもシンプルな構文で学習を始められるため、データの理解を深める最初の一歩に最適です。

Google Colabを使う理由

Pandasの学習をより簡単にするために、Googleが提供する無料のクラウド環境Google Colabを利用します。
Google ColabではPython環境のインストールや設定が不要で、すぐにコードを書き始めることができます。
また、強力なクラウドコンピューティングの力を借りて、ローカルPCの性能を問わずにスムーズな操作が可能です。

Google Colabの準備

Google Colabとは

Google Colabは、ブラウザ上でPythonコードを記述、実行できるクラウドベースのJupyter Notebook環境です。
Markdown記法で説明やコメントを記述できるため、学習やレポート作成に非常に便利です。
また、クラウド上で動作するため、PCの環境や性能に依存しません。

Google Colabの開始方法

  1. Google Colabのページを開きます。
  2. Googleアカウントでログインします。
  3. 「ファイル」メニューから「ノートブックを新規作成」を選び、新しいノートブックを作成します。

ノートブックには「コードセル」と「テキストセル」があり、コードセルにPythonコードを記述します。
例えば、以下のコードを入力して実行してください。

print(“Hello, World!”)

実行すると、出力がすぐに表示され、Pythonコードの結果を確認できます。
とても簡単にPythonを実行できるため、コードを書く練習をするのにも最適です。

Pandasの入門

Google Colabの準備が整ったら、Pandasの基礎を学んでいきましょう。

Pandasのインポート

まず、Pandasライブラリをインポートします。
以下のコードを実行することで、Pandasを利用可能にします。

import pandas as pd

Pandasの基本構造を理解する

Pandasの中心には、データを扱うための2つの主要なデータ構造、SeriesとDataFrameがあります。

Series

Seriesは1次元のデータ構造で、リストのようなデータを操作できます。
たとえば、「1週間の気温データ」をSeriesで表現する例を見てみましょう。

# 気温データをSeriesとして作成

temperatures = pd.Series(

    [22, 25, 21, 23, 24],

    index=[“月”, “火”, “水”, “木”, “金”]

)

print(temperatures)

出力例:

月    22

火    25

水    21

木    23

金    24

dtype: int64

DataFrame

DataFrameは複数列を持つ表形式データを表現します。
以下は、日ごとの天気データをDataFrameで表現する例です。

# 天気データをDataFrameとして作成

data = {

    “日付”: [“2024-01-01”, “2024-01-02”, “2024-01-03”],

    “天気”: [“晴れ”, “曇り”, “雨”],

    “最高気温”: [22, 25, 18]

}

df = pd.DataFrame(data)

print(df)

出力例:

         日付   天気  最高気温

0  2024-01-01  晴れ    22

1  2024-01-02  曇り    25

2  2024-01-03   雨    18

サンプルデータを活用する

Google Colabでは、sample_dataフォルダ内にあらかじめ用意されたデータセットを利用することができます。

ここではcalifornia_housing_train.csvを使用します。

カリフォルニア州の住宅情報を使った分析

california_housing_train.csvには、カリフォルニア州の住宅に関するさまざまな情報が含まれています。

このデータを用いて、基本的なデータ操作や分析を学びましょう。

# データの読み込み

file_path = “sample_data/california_housing_train.csv”

df = pd.read_csv(file_path)

# データの先頭5行を表示

print(df.head())

出力例:

  longitude  latitude  housing_median_age  total_rooms  total_bedrooms  \n0    -114.31     34.19                15.0       5612.0           1283.0   

1    -114.47     34.40                19.0       7650.0           1901.0   

2    -114.56     33.69                17.0        720.0            174.0   

3    -114.57     33.64                14.0       1501.0            337.0   

4    -114.57     33.57                20.0       1454.0            326.0   

   population  households  median_income  median_house_value  

0      1015.0       472.0         1.4936            66900.0   

1      1129.0       463.0         1.8200            80100.0   

2       333.0       117.0         1.6509            85700.0   

3       515.0       226.0         3.1917            73400.0   

4       624.0       262.0         1.9250            65500.0   

データセットを使った基本操作

特定の列を抽出する

住宅の「世帯収入の中央値」を確認してみます。

# 特定の列を抽出

print(df[“median_income”])

出力例:

0    1.4936

1    1.8200

2    1.6509

3    3.1917

4    1.9250

Name: median_income, dtype: float64

条件でデータを絞り込む

「世帯収入の中央値」が3以上の住宅データを抽出してみます。

# 条件によるデータの絞り込み

high_income_houses = df[df[“median_income”] > 3]

print(high_income_houses)

出力例:

      longitude  latitude  housing_median_age  total_rooms  total_bedrooms  \

3        -114.57     33.64                14.0       1501.0           337.0   

5        -114.58     33.63                29.0       1387.0           236.0   

13       -114.61     34.83                31.0       2478.0           464.0   

23       -114.98     33.82                15.0        644.0           129.0   

25       -115.32     32.82                34.0        591.0           139.0   

…          …       …                 …          …             …   

16986    -124.19     40.73                21.0       5694.0          1056.0   

16992    -124.23     40.81                52.0       1112.0           209.0   

16993    -124.23     40.54                52.0       2694.0           453.0   

16997    -124.30     41.84                17.0       2677.0           531.0   

16999    -124.35     40.54                52.0       1820.0           300.0   

       population  households  median_income  median_house_value  

3           515.0       226.0         3.1917             73400.0  

5           671.0       239.0         3.3438             74000.0  

13         1346.0       479.0         3.2120             70400.0  

23          137.0        52.0         3.2097             71300.0  

25          327.0        89.0         3.6528            100000.0  

…           …         …            …                 …  

16986      2907.0       972.0         3.5363             90100.0  

16992       544.0       172.0         3.3462             50800.0  

16993      1152.0       435.0         3.0806            106700.0  

16997      1244.0       456.0         3.0313            103600.0  

16999       806.0       270.0         3.0147             94600.0  

[10923 rows x 9 columns]

新しい列を追加する

1部屋あたりの収入を計算し、新しい列として追加します。

# 新しい列の追加

df[“income_per_room”] = df[“median_income”] / df[“total_rooms”]

print(df.head())

出力例:

  longitude  latitude  housing_median_age  total_rooms  total_bedrooms  \

0    -114.31     34.19                15.0       5612.0          1283.0   

1    -114.47     34.40                19.0       7650.0          1901.0   

2    -114.56     33.69                17.0        720.0           174.0   

3    -114.57     33.64                14.0       1501.0           337.0   

4    -114.57     33.57                20.0       1454.0           326.0   

   population  households  median_income  median_house_value  income_per_room  

0      1015.0       472.0         1.4936             66900.0         0.000266  

1      1129.0       463.0         1.8200             80100.0         0.000238  

2       333.0       117.0         1.6509             85700.0         0.002293  

3       515.0       226.0         3.1917             73400.0         0.002126  

4       624.0       262.0         1.9250             65500.0         0.001324  

データの並べ替え

「世帯収入の中央値」でデータを並べ替えます。

# データの並べ替え

sorted_df = df.sort_values(by=”median_income”, ascending=False)

print(sorted_df.head())

出力例:

      longitude  latitude  housing_median_age  total_rooms  total_bedrooms  \

7879     -118.40     34.11                32.0       5578.0           753.0   

5048     -118.12     34.12                52.0       2907.0           317.0   

14697    -122.18     37.46                40.0       2529.0           293.0   

7268     -118.34     34.08                52.0       1721.0           195.0   

14791    -122.20     37.44                31.0       2328.0           270.0   

       population  households  median_income  median_house_value  \

7879       1567.0       697.0        15.0001            500001.0   

5048        956.0       279.0        15.0001            500001.0   

14697       831.0       258.0        15.0001            500001.0   

7268        688.0       196.0        15.0001            500001.0   

14791       722.0       247.0        15.0001            500001.0   

       income_per_room  

7879          0.002689  

5048          0.005160  

14697         0.005931  

7268          0.008716  

14791         0.006443  

データの可視化

Pandasで扱ったデータは、他のライブラリを使うことでグラフとして可視化することが可能です。

今回は、Matplotlib(マットプロットリブ) というライブラリを使います。

棒グラフの作成

「世帯収入の中央値」を棒グラフで可視化します。

import matplotlib.pyplot as plt

# 世帯収入の中央値を棒グラフで表示

df[“median_income”].head(20).plot(kind=”bar”, figsize=(10, 6))

plt.title(“Median Income for First 20 Rows”)

plt.xlabel(“Index”)

plt.ylabel(“Median Income”)

plt.show()

出力例:
グラフが表示され、最初の20行の収入データが視覚的に確認できます。

まとめ

Google Colabを利用することで、Pandasを簡単に学び始めることができます。
このガイドを通じて、Pandasの基本構造であるSeriesとDataFrameの操作、データのインポートとエクスポート、そしてデータの可視化まで、幅広いスキルを習得できます。
実際のデータを使って練習しながら、データ分析や処理スキルをさらに向上させていきましょう。