【Python】第9章第10回:データ解析プロジェクト例

本記事では、Pythonを使ったデータ解析プロジェクトの基本構造と実践例について解説します。pandasやmatplotlibを活用して、簡単なデータ解析プロジェクトを構築する方法を学びます。
0. 記事の概要
この記事を読むメリット
- データ解析の基本を理解:プロジェクトの流れを実践的に学べます。
- Pythonライブラリの使い方を習得:pandasやmatplotlibなどの主要ツールを活用できます。
- 実践的なスキルを習得:オリジナルのデータ解析プロジェクトを構築する基盤を学べます。
この記事で学べること
- データ解析プロジェクトの基本的な流れ
- pandasを使ったデータ処理と分析
- matplotlibによるデータの可視化
1. データ解析プロジェクトの基本構造

1.1 データ解析の流れ
- データ解析の基本を理解:プロジェクトの流れを実践的に学べます。
- Pythonライブラリの使い方を習得:pandasやmatplotlibなどの主要ツールを活用できます。
- 実践的なスキルを習得:オリジナルのデータ解析プロジェクトを構築する基盤を学べます。
この記事で学べること
- データ解析プロジェクトの基本的な流れ
- pandasを使ったデータ処理と分析
- matplotlibによるデータの可視化
1. データ解析プロジェクトの基本構造

1.1 データ解析の流れ

1.1 データ解析の流れ
データ解析プロジェクトは、以下のような手順で進められます。
- データ収集: 必要なデータを収集する。
- データ前処理: 欠損値や外れ値の処理、データの整形を行う。
- データ分析: 必要な統計処理や特徴抽出を実施する。
- データ可視化: 分析結果をグラフや図で表現する。
- 結果の共有: プレゼンテーションやレポート作成を行う。
1.2 使用するライブラリ
本記事で使用する主なライブラリは以下の通りです。
- pandas: データフレーム操作
- numpy: 数値計算
- matplotlib: データ可視化
2. pandasを使ったデータ処理

2.1 データの読み込みと基本操作
# pandasでCSVデータを読み込む
import pandas as pd
# データの読み込み
data = pd.read_csv("sample_data.csv")
# データの確認
print(data.head())
# データの統計情報
print(data.describe())
2.2 データのクリーニング
# 欠損値の確認と処理
print(data.isnull().sum())
# 欠損値を埋める
data.fillna(0, inplace=True)
# 不要な列を削除
data.drop(columns=["UnnecessaryColumn"], inplace=True)
動作解説
- read_csv: CSVファイルをデータフレームとして読み込みます。
- isnull: 欠損値の存在を確認します。
- fillna: 欠損値を指定した値で埋めます。
- drop: 不要な列を削除します。
3. データの可視化
3.1 matplotlibでの基本的なグラフ作成
# matplotlibでデータを可視化
import matplotlib.pyplot as plt
# 棒グラフを作成
data["Column1"].value_counts().plot(kind="bar")
plt.title("カテゴリ別の件数")
plt.xlabel("カテゴリ")
plt.ylabel("件数")
plt.show()
# 折れ線グラフを作成
data["Column2"].plot(kind="line")
plt.title("データの推移")
plt.xlabel("時間")
plt.ylabel("値")
plt.show()
動作解説
- plot: データのグラフを作成します。
- title, xlabel, ylabel: グラフのタイトルやラベルを設定します。
- show: 作成したグラフを表示します。
4. 練習問題


# pandasでCSVデータを読み込む
import pandas as pd
# データの読み込み
data = pd.read_csv("sample_data.csv")
# データの確認
print(data.head())
# データの統計情報
print(data.describe())
2.2 データのクリーニング
# 欠損値の確認と処理
print(data.isnull().sum())
# 欠損値を埋める
data.fillna(0, inplace=True)
# 不要な列を削除
data.drop(columns=["UnnecessaryColumn"], inplace=True)
動作解説
# 欠損値の確認と処理
print(data.isnull().sum())
# 欠損値を埋める
data.fillna(0, inplace=True)
# 不要な列を削除
data.drop(columns=["UnnecessaryColumn"], inplace=True)
- read_csv: CSVファイルをデータフレームとして読み込みます。
- isnull: 欠損値の存在を確認します。
- fillna: 欠損値を指定した値で埋めます。
- drop: 不要な列を削除します。
3. データの可視化
3.1 matplotlibでの基本的なグラフ作成
# matplotlibでデータを可視化
import matplotlib.pyplot as plt
# 棒グラフを作成
data["Column1"].value_counts().plot(kind="bar")
plt.title("カテゴリ別の件数")
plt.xlabel("カテゴリ")
plt.ylabel("件数")
plt.show()
# 折れ線グラフを作成
data["Column2"].plot(kind="line")
plt.title("データの推移")
plt.xlabel("時間")
plt.ylabel("値")
plt.show()
動作解説
- plot: データのグラフを作成します。
- title, xlabel, ylabel: グラフのタイトルやラベルを設定します。
- show: 作成したグラフを表示します。
4. 練習問題

# matplotlibでデータを可視化
import matplotlib.pyplot as plt
# 棒グラフを作成
data["Column1"].value_counts().plot(kind="bar")
plt.title("カテゴリ別の件数")
plt.xlabel("カテゴリ")
plt.ylabel("件数")
plt.show()
# 折れ線グラフを作成
data["Column2"].plot(kind="line")
plt.title("データの推移")
plt.xlabel("時間")
plt.ylabel("値")
plt.show()
動作解説

以下の課題に挑戦してみましょう。
- データの列「Column3」の最大値と最小値を求めてください。
- matplotlibを使って、ヒストグラムを作成してください。
5. 練習問題の解答と解説
問1の解答例
# 最大値と最小値を求める
max_value = data["Column3"].max()
min_value = data["Column3"].min()
print(f"最大値: {max_value}, 最小値: {min_value}")
問2の解答例
# ヒストグラムの作成
data["Column3"].plot(kind="hist", bins=10)
plt.title("ヒストグラム")
plt.xlabel("値の範囲")
plt.ylabel("頻度")
plt.show()
6. まとめ
# 最大値と最小値を求める
max_value = data["Column3"].max()
min_value = data["Column3"].min()
print(f"最大値: {max_value}, 最小値: {min_value}")
問2の解答例
# ヒストグラムの作成
data["Column3"].plot(kind="hist", bins=10)
plt.title("ヒストグラム")
plt.xlabel("値の範囲")
plt.ylabel("頻度")
plt.show()
6. まとめ
# ヒストグラムの作成
data["Column3"].plot(kind="hist", bins=10)
plt.title("ヒストグラム")
plt.xlabel("値の範囲")
plt.ylabel("頻度")
plt.show()
本記事では、Pythonを使ったデータ解析プロジェクトの基本構造とpandasを使ったデータ処理、matplotlibによる可視化について学びました。これを基礎として、オリジナルのデータ解析プロジェクトに挑戦してみましょう。