データ分析は、現代社会のあらゆる分野で必要とされるスキルです。特にPythonは、シンプルな構文と豊富なライブラリが特徴で、初心者からプロまで幅広い層に支持されています。この記事では、Pythonを使ったデータ分析の基礎を、手を動かしながら学んでいきます。
必要なモジュールのインストールと準備
Pythonでデータ分析を始めるには、以下のライブラリをインストールしましょう。
• Pandas: データの読み込みや加工、分析を支援するライブラリ
• NumPy: 数値計算に特化したツール
• Matplotlib: 基本的なグラフ作成用ライブラリ
• Seaborn: データ可視化を強化するためのライブラリ
インストールは以下のコマンドで簡単に行えます。
pip install pandas numpy matplotlib seaborn
サンプルデータの作成と読み込み
手元にデータがない場合でも、Pythonで簡単にサンプルデータを作成できます。以下はランダムなデータを生成し、CSV形式で保存するコードです。
import pandas as pd
import numpy as np
# サンプルデータの作成
np.random.seed(0)
sample_data = pd.DataFrame({
'年齢': np.random.randint(20, 60, 100),
'年収': np.random.randint(300, 1000, 100),
'支出': np.random.randint(100, 500, 100)
})
# CSVファイルとして保存
sample_data.to_csv('sample_data.csv', index=False)
print("サンプルデータを作成しました。以下がその内容です:")
print(sample_data.head())
このコードを実行すると、sample_data.csvというファイルが生成されます。これを利用して分析を進めましょう。
データクレンジングの重要性と実例
データクレンジングは、分析結果の精度を左右する重要なプロセスです。現実のデータには、欠損値や外れ値、不一致なフォーマットなど、多くの問題が含まれています。これらを無視すると、誤った結論を導き出してしまう可能性があります。
よくあるデータの問題点
1. 欠損値(NaNや空白)
欠損値を放置すると、平均値や合計値の計算に影響します。
2. 外れ値
異常に高い値や低い値は、データ分布を歪める原因になります。
3. 不一致なフォーマット
日付や数値形式の不統一は、データ処理を複雑化します。
クレンジングの手法
以下は実務でも役立つ基本的なクレンジング手法です。
欠損値の確認と処理
# 欠損値を確認
print(sample_data.isnull().sum())
# 欠損値を平均値で埋める
sample_data['年収'] = sample_data['年収'].fillna(sample_data['年収'].mean())
外れ値の除去
# 四分位範囲を利用して外れ値を除去
Q1 = sample_data['支出'].quantile(0.25)
Q3 = sample_data['支出'].quantile(0.75)
IQR = Q3 - Q1
filtered_data = sample_data[~((sample_data['支出'] < (Q1 - 1.5 * IQR)) | (sample_data['支出'] > (Q3 + 1.5 * IQR)))]
print(filtered_data.head())
データフォーマットの統一
# 日付フォーマットの変換
sample_data['日付'] = pd.to_datetime(sample_data['日付'], errors='coerce')
データクレンジングを丁寧に行うことで、信頼性の高い分析結果を得ることができます。
グラフの作成方法
データの視覚化は、傾向や特徴を直感的に把握するための重要な手段です。
Matplotlibで基本のグラフを作成
import matplotlib.pyplot as plt
# サンプルデータのグラフ化
plt.plot(sample_data['年齢'], sample_data['年収'])
plt.title('年齢と年収の関係')
plt.xlabel('年齢')
plt.ylabel('年収')
plt.show()
Seabornでヒストグラムを作成
import seaborn as sns
# 年収の分布
sns.histplot(sample_data['年収'], bins=20, kde=True)
plt.title('年収の分布')
plt.show()
基本的なデータ分析手法
平均値・中央値・標準偏差の計算
# 平均値
print(sample_data['年収'].mean())
# 中央値
print(sample_data['年収'].median())
# 標準偏差
print(sample_data['年収'].std())
データの分布をBoxplotで確認
sns.boxplot(x=sample_data['支出'])
plt.title('支出の分布')
plt.show()
応用:相関分析と回帰分析の実例
相関分析
# 相関行列を計算
correlation = sample_data.corr()
print(correlation)
# 相関行列を可視化
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title('相関行列')
plt.show()
回帰分析
from sklearn.linear_model import LinearRegression
# モデルの準備
model = LinearRegression()
# 説明変数と目的変数を設定
X = sample_data[['年齢', '支出']]
y = sample_data['年収']
# モデルの学習
model.fit(X, y)
# 回帰係数と切片
print("回帰係数:", model.coef_)
print("切片:", model.intercept_)
まとめ
Pythonを使ったデータ分析の基本を学びながら、データクレンジングや可視化の重要性にも触れました。特に、クレンジングを丁寧に行うことで、より正確で信頼性の高い結果が得られることを意識しましょう。このチュートリアルを活用して、データ分析の第一歩を踏み出してください!
コメント