前書き
Pythonはデータ分析や可視化の分野で非常に強力なツールを提供しています。本記事では、データ分析においてよく使用される主要なモジュール(Pandas、NumPy、Matplotlib、Seaborn、Bokeh)について、その役割と基本的な使い方をまとめます。これからデータ分析を始める方や、すでに使用している方の参考になれば幸いです。
Pandas
役割: データの操作と分析
Pandasは、データの操作や分析を行うための強力なデータ構造(SeriesとDataFrame)を提供します。データの読み込み、クリーニング、集計、変換、操作を簡単に行うことができます。
主な機能:
- CSV、Excel、SQL、JSONなどからのデータ読み込み
- データのフィルタリング、ソート、グループ化
- 欠損値の処理、データの結合
- 統計量の計算(平均、中央値、分散など)
import pandas as pd
# データフレームの作成
data = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [24, 27, 22, 32],
'city': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})
# データの表示
print(data)
実行結果:
name age city
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston
NumPy
役割: 配列計算と数値操作
NumPyは、Pythonで数値計算を行うための基本ライブラリです。多次元配列(ndarray)を提供し、高速な数値演算を可能にします。
主な機能:
- 配列の作成と操作
- 数学的関数(線形代数、フーリエ変換、統計関数など)
- ランダム数の生成
- 配列のブロードキャストと形状変更
import numpy as np
# 配列の作成
array = np.array([1, 2, 3, 4, 5])
# 配列の操作
print("Mean:", np.mean(array))
print("Median:", np.median(array))
print("Variance:", np.var(array))
print("Standard Deviation:", np.std(array))
実行結果:
Mean: 3.0
Median: 3.0
Variance: 2.0
Standard Deviation: 1.4142135623730951
Matplotlib
役割: データの可視化
Matplotlibは、静的な2Dプロットを作成するためのライブラリです。データの可視化に必要な基本的なプロット(折れ線グラフ、散布図、棒グラフ、ヒストグラムなど)を作成することができます。
主な機能:
- 基本的なプロットの作成(折れ線グラフ、散布図など)
- カスタマイズ可能なプロット(軸ラベル、タイトル、凡例などの設定)
- グラフの保存(PNG、PDFなど)
import matplotlib.pyplot as plt
# データの作成
x = np.linspace(0, 10, 100)
y = np.sin(x)
# プロットの作成
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Sine Wave')
plt.show()
Seaborn
役割: 高レベルな統計データの可視化
Seabornは、Matplotlibを基盤としており、統計データの可視化を簡単に行うための高レベルなインターフェースを提供します。デフォルトで美しいプロットを作成できるため、視覚的な魅力が高いグラフを作成するのに便利です。
主な機能:
- ペアプロット、ヒートマップ、カウントプロットなどの統計プロット
- データフレームと統合されたプロット
- 色付けやスタイル設定の簡便さ
import matplotlib.pyplot as plt
import seaborn as sns
# データセットの読み込み
data = sns.load_dataset('iris')
# ペアプロットの作成
sns.pairplot(data, hue='species')
plt.show()
Bokeh
役割: インタラクティブなデータの可視化
Bokehは、インタラクティブなWebベースの可視化を作成するためのライブラリです。動的なプロットやインタラクティブなダッシュボードを作成することができます。
主な機能:
- インタラクティブなプロット(ズーム、パン、ホバーなどの機能付き)
- Webアプリケーションとの統合
- 高度なプロット(散布図、折れ線グラフ、棒グラフなど)の作成
- プロットの出力(HTMLファイル、Jupyter Notebookなど)
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show, output_file
import webbrowser
# サンプルデータの作成
data = pd.DataFrame({
'A': np.random.randn(100),
'B': np.random.rand(100),
})
# HTMLファイルに出力
output_file("scatter_plot.html")
# Bokehプロットの作成
p = figure(title="Scatter Plot of A vs B", x_axis_label='A', y_axis_label='B')
# 散布図の追加
p.scatter(data['A'], data['B'], legend_label='A vs B', fill_alpha=0.6, size=10)
# プロットの表示
show(p)
# ブラウザで自動的に開く
webbrowser.open("scatter_plot.html")
まとめ
これらのモジュールを組み合わせることで、データの読み込みから可視化、分析まで一貫して行うことができます。それぞれのモジュールが持つ特性を理解し、適切に使い分けることが効果的なデータ分析の鍵となります。これらのツールを駆使して、データから有益な洞察を引き出し、ビジネスや研究に役立ててください。