Pythonでのデータ分析入門:pandasを使った基本操作完全ガイド

Pythonでのデータ分析入門:pandasを使った基本操作完全ガイド | mohablog

データ分析はビジネスの意思決定に欠かせないスキルです。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')

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による可視化で、データの傾向やパターンを直感的に理解できる
  • 実務ではこれらの技法を組み合わせて、具体的な洞察を導き出す

データ分析は継続的な学習が重要です。本記事で学んだ基礎を土台として、より高度な分析手法にチャレンジしていくことをお勧めします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次