データ分析はビジネスの意思決定に欠かせないスキルですね。Pythonはデータ分析に特化した豊富なライブラリを備えており、初心者でも比較的効率よくデータを扱えると思います。本記事では、Pythonの強力なデータ処理ライブラリpandasを使った基本的な操作方法を、実践的な例とともに解説していきます。
Pythonがデータ分析に最適な理由
Pythonがデータ分析の世界で圧倒的な支持を集める理由は複数あります。まず、シンプルで読みやすい構文により、プログラミング初心者でも学習曲線が緩やかだと感じます。さらに、pandas、NumPy、Matplotlibなどデータ分析に特化したライブラリが充実している点が大きな強みです。
- 豊富なデータ処理ライブラリが利用可能
- 学習リソースが豊富で情報が多い
- データサイエンティスト業界での標準言語
- オープンソースで無料で利用できる
- 大規模なコミュニティがサポート
pandasとは?基本概念を理解しよう
pandasは、Pythonにおけるデータ分析の中核ライブラリです。ExcelやSQLと同様に表形式のデータ(テーブル)を扱うことに特化しており、データの読み込み、加工、分析が効率的に行えます。pandasは主に2つのデータ構造を提供してくれます。
- Series(シリーズ):1次元配列。単一の列データを扱う
- DataFrame(データフレーム):2次元テーブル。複数の列を持つデータを扱う
Pythonのセットアップとpandasのインストール
Pythonがインストールされている環境を前提として、まずpandasをインストールする必要があります。以下のコマンドを実行してみてください。
pip install pandas numpy matplotlib
インストール完了後、Pythonファイルで以下のようにインポートしたら準備は完了だと思います。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
pandasで最初にやること:データの読み込み
データ分析の第一歩は、ファイルからデータを読み込むことです。pandasはCSV、Excel、JSON、SQLデータベースなど、様々なフォーマットのファイルを読み込めるんですね。
CSVファイルの読み込み
df = pd.read_csv('data.csv')
print(df.head()) # 最初の5行を表示
Excelファイルの読み込み
df = pd.read_excel('data.xlsx', sheet_name=0)
データフレームの基本確認
読み込んだデータがどのようなものか確認することは本当に重要です。以下のメソッドで全体像を把握できるはずです。
print(df.shape) # 行数と列数を表示
print(df.info()) # データ型や欠損値情報を表示
print(df.describe()) # 統計情報を表示
データの探索と基本的な操作
データを読み込んだ後は、データの内容を理解することが大切だと気付きました。様々な手法でデータを探索してみましょう。
列の選択と行のフィルタリング
# 単一列を選択
age_column = df['age']
# 複数列を選択
selected_columns = df[['name', 'age', 'salary']]
# 条件で行をフィルタリング
adults = df[df['age'] >= 20]
high_salary = df[df['salary'] > 500000]
データの並べ替えと並び替え
# 昇順でソート
df_sorted = df.sort_values('age')
# 降順でソート
df_sorted_desc = df.sort_values('salary', ascending=False)
# 複数列でソート
df_sorted_multi = df.sort_values(['age', 'salary'])
データの前処理:欠損値と重複の処理
実際のプロジェクトで扱うデータは往々にして不完全な状態です。欠損値や重複データを適切に処理することが、分析の精度に大きく影響してくると感じます。
欠損値の確認と処理
# 欠損値の確認
print(df.isnull().sum()) # 列ごとの欠損数を表示
# 欠損値を削除
df_clean = df.dropna()
# 欠損値を特定の値で埋める
df_filled = df.fillna(0) # 0で埋める
df_filled = df.fillna(df.mean()) # 平均値で埋める
重複データの処理
# 重複行の確認
print(df.duplicated().sum())
# 重複行を削除
df_unique = df.drop_duplicates()
データの集計と統計分析
処理済みデータから有意な情報を抽出するには、集計と統計分析が不可欠だと思います。
基本的な統計量の計算
# 平均値
mean_age = df['age'].mean()
# 中央値
median_salary = df['salary'].median()
# 標準偏差
std_age = df['age'].std()
# 合計値
total_salary = df['salary'].sum()
グループ化と集計(Group By)
カテゴリ別の集計は、データ分析において頻繁に行われます。pandasのgroupby メソッドは非常に強力で、最初は驚きました。
# 部門別の平均給与を計算
by_department = df.groupby('department')['salary'].mean()
# 複数の統計量を一度に計算
stats = df.groupby('department').agg({
'salary': ['mean', 'max', 'min'],
'age': 'mean'
})
print(stats)
データの可視化で洞察を得る
数字だけでなく、グラフで可視化することで、データのパターンや傾向が一目で理解できるようになります。matplotlibを組み合わせることで、高度な可視化が実現可能です。
import matplotlib.pyplot as plt
# ヒストグラム
df['age'].hist(bins=20)
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.title('Age Distribution')
plt.show()
# 散布図
plt.scatter(df['age'], df['salary'])
plt.xlabel('Age')
plt.ylabel('Salary')
plt.title('Age vs Salary')
plt.show()
# 棒グラフ
by_department = df.groupby('department')['salary'].mean()
by_department.plot(kind='bar')
plt.title('Average Salary by Department')
plt.show()
実践的な例:売上データの分析
ここまで学んだ知識を活かして、実際のビジネスデータを分析する例を紹介しましょう。
# サンプルデータの作成
sales_data = {
'date': pd.date_range('2024-01-01', periods=100),
'product': np.random.choice(['A', 'B', 'C'], 100),
'region': np.random.choice(['North', 'South', 'East', 'West'], 100),
'sales': np.random.randint(10000, 100000, 100)
}
df_sales = pd.DataFrame(sales_data)
# 商品別の売上合計
product_sales = df_sales.groupby('product')['sales'].sum()
print(product_sales)
# 地域別の平均売上
region_avg = df_sales.groupby('region')['sales'].mean()
print(region_avg)
# 月別の売上推移
df_sales['month'] = df_sales['date'].dt.to_period('M')
monthly_sales = df_sales.groupby('month')['sales'].sum()
monthly_sales.plot(kind='line')
plt.title('Monthly Sales Trend')
plt.show()
まとめ
Pythonとpandasを使ったデータ分析の基本について、実践的な例とともに解説してきました。これらの知識があれば、初心者でも本格的なデータ分析を始められるはずです。
- pandasのDataFrameとSeriesは、データ分析の基本となるデータ構造
- read_csv()やread_excel()などで、様々なフォーマットのファイルを読み込める
- 欠損値の処理と重複の削除は、データ品質を確保する重要なステップ
- groupby()を活用した集計で、カテゴリ別の分析が効率的に実行できる
- matplotlibによる可視化で、データの傾向やパターンを直感的に理解できる
- 本番環境ではこれらの技法を組み合わせて、具体的な洞察を導き出す
データ分析は継続的な学習が重要です。本記事で学んだ基礎を土台として、より高度な分析手法にチャレンジしていくことをお勧めします。

