はじめに
Pythonでデータ分析を始めるとき、最初に覚えるべきライブラリが「pandas(パンダス)」です。Excelのような表形式のデータを扱うためのライブラリで、機械学習の前処理から日常的なデータ集計まで幅広く使えます。
僕は製造業でデータ分析を担当していますが、日常業務の8割はpandasで完結しています。この記事では、実務でよく使うpandasの操作をコード付きで紹介します。
pandasの基本
インストールと読み込み
pip install pandas openpyxl
import pandas as pd
import numpy as np
データの読み込み
# CSVの読み込み
df = pd.read_csv('data.csv', encoding='utf-8')
# Excelの読み込み
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 基本情報の確認
print(df.shape) # 行数・列数
print(df.dtypes) # 各列のデータ型
print(df.head()) # 先頭5行
print(df.describe()) # 基本統計量
よく使う操作集
① 列の選択・追加・削除
# 列の選択
df_selected = df[['col1', 'col2']]
# 新しい列の追加
df['ratio'] = df['A'] / df['B']
# 列の削除
df = df.drop(columns=['不要な列'])
② 条件でフィルタリング
# 単一条件
df_filtered = df[df['売上'] > 100]
# 複数条件(AND)
df_filtered = df[(df['売上'] > 100) & (df['地域'] == '長野')]
# 複数条件(OR)
df_filtered = df[(df['ランク'] == 'A') | (df['ランク'] == 'B')]
③ 欠損値の処理
# 欠損値の確認
print(df.isnull().sum())
# 欠損値を含む行を削除
df_clean = df.dropna()
# 特定の列の欠損値を平均で補完
df['売上'] = df['売上'].fillna(df['売上'].mean())
# 前の値で補完(時系列データ向け)
df['センサー値'] = df['センサー値'].fillna(method='ffill')
④ グループ集計
# 地域別の売上合計
result = df.groupby('地域')['売上'].sum()
# 複数の集計を同時に行う
result = df.groupby('地域').agg({
'売上': ['sum', 'mean', 'count'],
'利益': 'sum'
})
# 月別・カテゴリ別の集計
result = df.groupby(['月', 'カテゴリ'])['売上'].sum().unstack()
⑤ データの結合
# 縦方向に結合(行の追加)
df_all = pd.concat([df1, df2], ignore_index=True)
# 横方向に結合(Excelのvlookupに相当)
df_merged = pd.merge(df_left, df_right, on='ID', how='left')
⑥ 日付データの処理
# 日付型に変換
df['日付'] = pd.to_datetime(df['日付'])
# 年・月・曜日の抽出
df['年'] = df['日付'].dt.year
df['月'] = df['日付'].dt.month
df['曜日'] = df['日付'].dt.day_name()
# 月次集計
df_monthly = df.resample('M', on='日付')['売上'].sum()
⑦ ピボットテーブル
# Excelのピボットテーブルと同じ感覚で使える
pivot = df.pivot_table(
values='売上',
index='地域',
columns='商品カテゴリ',
aggfunc='sum',
fill_value=0
)
⑧ データの出力
# CSV出力
df.to_csv('output.csv', index=False, encoding='utf-8-sig') # BOMあり(Excel対応)
# Excel出力
df.to_excel('output.xlsx', sheet_name='結果', index=False)
実務でよく使うコードパターン
月次レポートの自動化
import pandas as pd
from datetime import datetime
# データ読み込み
df = pd.read_csv('sales.csv')
df['日付'] = pd.to_datetime(df['日付'])
# 当月のデータを抽出
now = datetime.now()
df_this_month = df[
(df['日付'].dt.year == now.year) &
(df['日付'].dt.month == now.month)
]
# 地域別集計
summary = df_this_month.groupby('地域').agg(
売上合計=('売上', 'sum'),
件数=('売上', 'count'),
平均単価=('売上', 'mean')
).round(0)
# Excel出力
summary.to_excel(f'{now.year}{now.month:02d}_月次レポート.xlsx')
print("レポート出力完了")
まとめ
pandasで実務に役立つ操作をまとめました。最初から全部覚える必要はありません。まずはCSVの読み込み→フィルタリング→グループ集計→出力の基本的な流れを身につけてください。Excelで時間がかかっていた集計作業が、pandasを使えば数行のコードで自動化できます。
💼 ITエンジニア転職特化
自分らしく働けるエンジニア転職を目指すなら【strategy career】
年収1000万・残業月30時間以下・リモート可の求人多数
※アフィリエイト広告を含みます
![]()
※本記事にはアフィリエイトリンクが含まれます。


コメント