
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の開始方法
- Google Colabのページを開きます。
- Googleアカウントでログインします。
- 「ファイル」メニューから「ノートブックを新規作成」を選び、新しいノートブックを作成します。
ノートブックには「コードセル」と「テキストセル」があり、コードセルに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の操作、データのインポートとエクスポート、そしてデータの可視化まで、幅広いスキルを習得できます。
実際のデータを使って練習しながら、データ分析や処理スキルをさらに向上させていきましょう。