Pythonの入門書で文法をひととおり学んだのに、業務で何に使うかが決まらず手が止まる。製造業のエンジニアには珍しくないつまずきです。
Pythonは文法が読みやすく、入門書や動画も豊富なプログラミング言語です。最初の題材に向くのは、検査機や設備が出すCSV(データをカンマで区切ったファイル)とExcelの間で、毎週繰り返している集計やレポート作りの置き換えです。
この記事では、続かない症状と原因を整理したうえで、最初に自動化したい5つの業務(CSVの結合と集計、規格外れの抽出、Excelレポートの出力、ファイル整理、定時実行)を、実際に動かして確認した短いコードとともに紹介します。
会社のパソコンでの始め方と、属人化させない運用のルールまで順に見ていきます。
Pythonを学んでも業務で使えない、よくある症状

Pythonは文法が読みやすく、入門書や動画も豊富です。それでも業務で使うところまで届かない人が多いのは、学習でつまずくのではなく、学習と業務の間でつまずいているからです。症状はおおむね次の4つに分かれます。
文法の理解とは別のところで止まっているケースがほとんどです。
1つめと2つめは「何をつくるか」の問題、3つめは「どこで動かすか」の問題、4つめは「誰が使い続けるか」の問題です。どれも文法書には書かれていません。
逆に言えば、この3点を先に決めておけば、必要な文法はごく一部で足ります。ファイルを読む、表を加工する、ファイルに書くという3つの動作ができれば、現場の繰り返し作業のかなりの部分を置き換えられます。
続かない原因は「題材・環境・引き継ぎ」の3つ
症状を原因の側から整理すると、題材、環境、引き継ぎの3つになります。それぞれに対して、この記事で扱う打ち手を並べたのが次の図です。
原因ごとに、先に決めておくことが違います。
※環境は「会社のパソコンでの始め方」、引き継ぎは「属人化させない運用のルール」の章で扱います。
このうち最も影響が大きいのが題材です。最初の題材は、次の3つの条件を満たすものから選ぶと失敗が減ります。
- 毎日または毎週、同じ手順で繰り返している
- 入力も出力もファイル(CSVやExcel)である
- 結果を手計算や従来のExcelと照らして検算できる
3つめの条件は見落とされがちです。プログラムは、間違った計算も止まらずに最後まで実行します。従来のやり方と同じ数字が出ることを確かめられる題材であれば、安心して置き換えを進められます。
なお、Excelの関数やピボットテーブルにまだ慣れていない場合は、そちらを先に固めるほうが近道です。表の形でデータを考える習慣は、Pythonでもそのまま使います。

最初に自動化する5つの業務
3つの条件に合い、多くの職場に共通してある業務が次の5つです。上から順に取り組むと、前の成果物がそのまま次の入力になります。
どれも「ファイルを読む・加工する・書く」の組み合わせです。
※使うのはPython本体と、表形式のデータを扱うpandas、Excel入出力用のopenpyxlの2つのライブラリです。
以下のコードは、検査機が1日1ファイルで出力するCSVを想定しています。ファイル名は inspection_20260901.csv の形式で、中身は次のような4列です。データは説明用に乱数でつくった架空の値です。
日時,設備,品番,測定値
2026-09-01 08:00:00,M01,A-100,10.026
2026-09-01 08:00:00,M02,A-100,10.049
2026-09-01 09:00:00,M01,A-100,10.001
コードはすべて、Windows 11のパソコンで実行して動作を確認しました。
確認した組み合わせは、Python 3.8とopenpyxl 3.1に、pandas 1.2またはpandas 2.0を合わせた2通りです。
2026年9月時点で最新のpandas 3.0系では実行していませんが、使っている機能は3.0系の公式ドキュメントにも掲載されているものに絞っています。
1.複数のCSVを1つにまとめて集計する
最初の題材として最も取り組みやすいのが、CSVの結合と集計です。ファイルを1つずつ開いてコピーし、貼り付ける作業は、ファイル数が増えるほど時間がかかり、貼り間違いも起きやすくなります。
from pathlib import Path
import pandas as pd
# data フォルダにある検査CSVをすべて読み込んで1つの表にする
files = sorted(Path("data").glob("inspection_*.csv"))
frames = []
for f in files:
df = pd.read_csv(f, encoding="cp932", parse_dates=["日時"])
df["元ファイル"] = f.name # どのファイルの行かを残す
frames.append(df)
all_data = pd.concat(frames, ignore_index=True)
all_data["日付"] = all_data["日時"].dt.date
# 日付・設備ごとに件数、平均、標準偏差、最大、最小を出す
summary = all_data.groupby(["日付", "設備"]).agg(
件数=("測定値", "count"),
平均=("測定値", "mean"),
標準偏差=("測定値", "std"),
最大=("測定値", "max"),
最小=("測定値", "min"),
).round(3)
print(summary)
all_data.to_csv("all_data.csv", index=False, encoding="utf-8-sig")
glob は、フォルダの中から名前のパターンに合うファイルを探す機能です。来週ファイルが増えても、コードを書き換える必要はありません。
encoding="cp932" は、Windowsの日本語環境で使われてきた文字コード(Shift_JIS系)の指定です。
日本語版のWindowsで動くソフトが出力するCSVはこの形式になっていることがあり、その場合は指定しないと読み込みでエラーになります。UTF-8で出力されるCSVであれば、この指定は要りません。
groupby 以降が集計の部分で、日付と設備の組み合わせごとに件数・平均・標準偏差・最大・最小を求めています。実行すると、次のような表が表示されます(5日分のうち先頭の2日分を抜粋)。
件数 平均 標準偏差 最大 最小
日付 設備
2026-09-01 M01 9 9.997 0.018 10.026 9.970
M02 9 10.023 0.024 10.068 9.991
2026-09-02 M01 9 10.005 0.013 10.025 9.978
M02 9 10.027 0.010 10.042 10.013
同じ考え方は、検査値だけでなく設備の稼働ログにも使えます。停止時間や生産数を設備別・日別に集計すれば、設備総合効率(OEE)を計算するための元データになります。
Excelのワークシートは1,048,576行までという上限があります。秒単位で記録されるログのように行数が多いデータでは、Excelでは全部の行を読み込めないことがPythonに切り替えるきっかけになります。
2.規格外れを自動で抜き出す
まとめた表ができたら、次は判定です。規格の上限と下限を決めておき、外れた行だけを別のファイルに書き出します。
import pandas as pd
LSL = 9.95 # 規格下限
USL = 10.05 # 規格上限
all_data = pd.read_csv("all_data.csv", parse_dates=["日時"])
# 規格の範囲に入っているかを判定し、外れた行だけ取り出す
ok = all_data["測定値"].between(LSL, USL)
ng = all_data[~ok]
print("全", len(all_data), "件のうち規格外れ", len(ng), "件")
print(ng[["日時", "設備", "品番", "測定値"]])
ng.to_csv("ng_list.csv", index=False, encoding="utf-8-sig")
between は「下限以上、上限以下」を判定する機能で、結果の前に付けた ~ は否定を表します。サンプルでは90件のうち2件が規格から外れ、その日時と設備が一覧で出力されました。
規格値は、コードの先頭に名前を付けてまとめておくのがポイントです。図面や検査基準書が改訂されたときに、直す場所が1か所で済みます。品番ごとに規格が違う場合は、規格の一覧をExcelかCSVで持ち、それを読み込む形に発展させます。
なお、判定の前提になるのは測定値そのものの確かさです。自動化の対象にするデータは、計測器の校正が管理されたものを使います。
3.定型レポートをExcelで出力する
上司や他部署に渡すのは、ほとんどの場合Excelです。Pythonで集計した結果も、最後はExcelファイルにしておくと受け取る側の手間が増えません。次のコードは、日別平均の表と折れ線グラフ、規格外れの一覧を1つのファイルにまとめます。
import pandas as pd
from openpyxl.chart import LineChart, Reference
all_data = pd.read_csv("all_data.csv", parse_dates=["日時"])
ng = pd.read_csv("ng_list.csv")
# 日付を行、設備を列にした平均値の表をつくる
trend = all_data.pivot_table(index="日付", columns="設備", values="測定値", aggfunc="mean").round(3)
with pd.ExcelWriter("weekly_report.xlsx", engine="openpyxl") as writer:
trend.to_excel(writer, sheet_name="日別平均")
ng.to_excel(writer, sheet_name="規格外れ", index=False)
# 日別平均シートに折れ線グラフを入れる
ws = writer.sheets["日別平均"]
rows = len(trend) + 1
cols = len(trend.columns) + 1
chart = LineChart()
chart.title = "設備別の日別平均"
chart.add_data(Reference(ws, min_col=2, max_col=cols, min_row=1, max_row=rows), titles_from_data=True)
chart.set_categories(Reference(ws, min_col=1, min_row=2, max_row=rows))
ws.add_chart(chart, "E2")
pivot_table はExcelのピボットテーブルと同じ考え方で、日付を行、設備を列にした表をつくります。
後半の LineChart 以降は、Excelファイルの中に折れ線グラフを追加する部分です。できあがったファイルは、Pythonが入っていないパソコンでも普通に開けます。
注意したいのは、既存の帳票への書き込みです。openpyxlの公式ドキュメントには、既存のファイルを開いて保存すると図形などが失われるという注意書きがあります。
ロゴや押印欄のある帳票を直接上書きせず、新しいファイルとして出力するのが安全です。
グラフの種類を増やすときは、ヒストグラムや管理図といったQC七つ道具の考え方がそのまま指針になります。何を見たいグラフなのかが決まっていれば、コードは後からついてきます。
4.ファイルを整理して控えを残す
検査機や設備のパソコンには、日々のCSVが同じフォルダにたまり続けます。月ごとのフォルダに分けて控えを残す作業も、短いコードで置き換えられます。
from pathlib import Path
import shutil
src = Path("data")
dst = Path("archive")
# inspection_20260901.csv のようなファイル名から年月を取り出し、月ごとのフォルダにコピーする
for f in sorted(src.glob("inspection_*.csv")):
ym = f.stem.split("_")[1][:6] # 例: 202609
folder = dst / ym
folder.mkdir(parents=True, exist_ok=True)
shutil.copy2(f, folder / f.name)
print(f.name, "->", folder)
ファイル名から年月の6桁を取り出し、その名前のフォルダをつくってコピーしています。ここで移動(move)ではなくコピー(copy2)を使っているのは意図的です。元のファイルを消す処理は、動作を十分に確かめてから最後に加えるようにします。
ファイルの改名、拡張子ごとの振り分け、共有サーバーへの控えの作成も同じ書き方でできます。地味ですが、後から「あの日のデータがない」という事態を防ぐ効果は小さくありません。
5.毎朝の確認を定時実行にする
ここまでの4つをつなげると、1つのスクリプトを実行するだけで、結合・判定・レポート・整理が終わる状態になります。最後に、それを人が起動しなくても動くようにします。
Windowsには、タスク スケジューラという標準の機能があります。特定の時刻、日次・週次・月次のスケジュール、ログオン時などを条件に、登録したプログラムを自動で実行する仕組みです。
実行するプログラムにPythonを、引数にスクリプトのファイルを指定すれば、毎朝決まった時刻にレポートができあがります。
この記事のコードは data などのフォルダを相対的な場所で指定しているため、タスクの作業フォルダにはスクリプトを置いたフォルダを指定します。
会社のパソコンではタスクの登録が制限されている場合もあるので、設定できないときは情報システム部門に相談してください。
定時実行にするときは、失敗に気づける工夫が欠かせません。パソコンの電源が切れていた、元のCSVがまだ出力されていなかった、といった理由で動かない日は必ず出てきます。
実行した日時と処理した件数をテキストファイルに1行ずつ記録しておくと、止まった日がすぐに分かります。
1つずつ作ったものが、最後は1本の流れになります。
データの出どころが検査機のCSVではなく、MES(製造実行システム)や生産管理システムの場合も、流れは変わりません。システムからCSVで出力できるデータがあれば、同じ方法で読み込めます。
会社のパソコンでの始め方|3つの環境を比べる

題材が決まったら、次は動かす場所です。選択肢は大きく3つあり、できることが異なります。
ファイル操作と定時実行ができるのは、手元のパソコンに入れたPythonだけです。
手元のパソコンにPythonを入れる
5つの業務すべてに対応できるのは、この方法です。Pythonの公式サイトでは、2026年9月時点で3.14系が最新の安定版として公開されています。
Windows向けには、Python Install Managerという導入ツールが案内されており、公式サイトまたはMicrosoft Storeから入手できます。
公式ドキュメントによれば、このツールで入れるPython本体は、パソコン全体ではなく利用者ごとの領域にインストールされます。
ただし、ツール自体を導入できるかどうかは会社のパソコンの設定によって変わりますし、技術的に入れられることと、会社として認められていることは別の話です。
ソフトウェアの導入申請が必要かどうかを、先に情報システム部門へ確認してください。
ライブラリは pip install pandas openpyxl のように、pipというコマンドで追加します。
このときインターネット上の配布元から取得するため、社内ネットワークの制限で失敗することがあります。その場合も、自己判断で回避策を探すのではなく、相談するのが筋です。
配布パッケージのAnacondaを使う方法もありますが、利用条件に注意が必要です。
Anacondaの利用規約では、従業員と委託先の合計(関連会社を含む)が200人を超える営利組織は、原則として有償プランの契約が必要とされています。
入門書の手順どおりに会社のパソコンへ入れる前に、確認しておきたい点です。
もう一つ知っておきたいのが、バージョンによる書き方の違いです。pandasは2026年1月に3.0が公開され、文字列の扱いや、月末を表す記号(MからMEへ)などが変わりました。
数年前の解説記事のコードがそのまま動かないときは、まずバージョンの違いを疑います。
Python in Excelを使う
Python in Excelは、Excelのセルの中でPythonのコードを実行できるMicrosoft 365の機能です。
セルに =PY と入力して使い、pandasやMatplotlibなど5つのライブラリが最初から使える状態になっています。
法人向けのMicrosoft 365では、Windows版、Mac版、Web版のExcelで提供されています。
手元にPythonを入れる必要がないため、導入のハードルは低くなります。一方で、計算はMicrosoftのクラウド上の分離された環境で実行され、コードから手元のパソコンのファイルやネットワークにはアクセスできません。
つまり、フォルダ内のCSVを次々に読み込む、ファイルを整理する、定時に実行するといった使い方には向きません。
ブックに取り込んだデータの集計やグラフ作成を、Excelの関数よりも柔軟に行うための機能と考えると位置づけがはっきりします。利用にはインターネット接続が必要です。
ブックのデータをクラウド側に渡して計算する仕組みなので、検査データなどの社内データを扱ってよいかは、会社のルールを確認してから使ってください。
属人化させない運用のルール
動くものができたあとに待っているのが、引き継ぎの問題です。複雑なExcelマクロが「作った人しか直せない」状態になるのと同じことが、Pythonでも起こります。最初の1本をつくる段階で、次の6つを決めておくと後が楽になります。
コードの上手さよりも、置き場所と確かめ方を決めることが先です。
特に大切なのが、手計算との照合です。品質記録や出荷判定に関わる数字を扱う場合、プログラムの結果をそのまま正式な記録にする前に、従来の方法と並行して運用する期間を設けます。
どこまでを参考資料とし、どこからを正式な記録とするかは、品質保証部門と相談して決めてください。
個人の工夫を職場の仕組みに育てるには、学ぶ時間と使う場の両方が必要になります。現場社員をデータ人材に育てた企業の事例でも、学んだ人が実務で使う場を会社が用意している点が共通しています。
想定例:検査データの週次レポートを4週間で置き換える

ここまでの内容を、1つの流れとして組み立ててみます。以下は特定の企業の事例ではなく、進め方をイメージするための想定例です。
品質管理の担当者が、毎週月曜に前週分の検査CSVを開き、Excelに貼り付けて平均とグラフをつくり、課内に配っているとします。この作業を、1週間に1つずつ、4週間かけて置き換えていきます。
一度に全部をつくらず、毎週1つだけ動くものを増やします。
※架空の想定例です。期間は題材の大きさや職場のルールによって変わります。
この進め方の要点は、毎週「従来の結果と合っているか」を確かめてから次に進むことです。1週目で数字が合わなければ、原因はたいてい元データの側にあります。空欄の行、単位の違い、途中で変わった列名などです。
こうしたデータの癖に気づけること自体が、自動化の副産物になります。手作業では無意識に直していた例外が、コードにすると明文化されるからです。
次に学ぶこと|試験と生成AIの使いどころ
5つの業務を一通り動かせたら、知識を体系的に確かめる段階に進めます。学習の目安としては、Pythonエンジニア育成推進協会の認定試験が使えます。
文法を確かめる試験と、データ分析のライブラリを確かめる試験があります。
※問題数・合格ライン・受験料は2026年9月時点の公式サイトの記載による。データ分析試験の主教材は、協会のお知らせで2026年1月5日から第3版に変わると発表されています(試験概要のページには第2版の記載が残っているため、受験前に公式サイトで確認してください)。
資格は目的ではありませんが、独学で抜けがちな基礎を埋める区切りになります。この記事で使ったpandasはデータ分析試験の出題範囲に含まれており、業務で使った経験がそのまま学習の土台になります。
もう一つ、いまの学び方として外せないのが生成AIです。やりたいことを日本語で伝えるとコードの下書きが返ってくるため、最初の一歩は以前よりずっと軽くなりました。ただし、使うときは次の3点を守ります。
- 図面、検査データ、取引先名など社外に出せない情報を入力しない(会社の利用ルールに従う)
- 出てきたコードは、小さなデータで実行して結果を検算する
- 古い書き方が混ざることがあるので、エラーが出たらライブラリのバージョンを確かめる
生成AIがコードを書いてくれる時代でも、何を入力し、どんな結果が出れば正しいのかを決められるのは、業務を知っている本人だけです。現場のエンジニアがPythonを学ぶ価値は、書く速さよりも、この判断ができる点にあります。

まとめ
- Pythonが業務に結びつかない原因は、題材・環境・引き継ぎの3つに分けられる
- 最初の題材は、繰り返しがあり、ファイルからファイルへの作業で、検算できるものを選ぶ
- CSVの結合と集計、規格外れの抽出、Excelレポート、ファイル整理、定時実行の順に進める
- ファイル操作と定時実行まで行うなら手元のPython、ブック内の集計ならPython in Excelが選択肢になる
- 元データを上書きしない、手計算と照合する、使い方を残すというルールを最初から決める
最初の1本は、30行ほどのコードで十分です。毎週の貼り付け作業が1つなくなるだけでも、データを見て考える時間が生まれます。
関連する職種は生産技術や品質保証・品質管理、技術テーマとしてはスマートファクトリー・IoTのページもあわせてご覧ください。
出典
出典・参考資料(13件)を開く出典・参考資料を閉じる
- Pythonの最新バージョンとサポート期間:Python.org「Download Python」
- WindowsでのPythonの導入方法:Python公式ドキュメント「Windows で Python を使う」
- pandas 3.0の変更点:pandas公式ドキュメント「What’s new in 3.0.0」
- CSVの読み込みと集計:pandas公式ドキュメント「pandas.read_csv」、Python公式ドキュメント「codecs(標準エンコーディング)」、「Group by: split-apply-combine」
- Excelファイルの入出力とグラフ:openpyxl公式ドキュメント「Tutorial」、「Line Charts」
- Python in Excelの概要:Microsoft サポート「Python in Excel の概要」
- Python in Excelの提供範囲:Microsoft Support「Python in Excel availability」
- Python in Excelの実行環境と標準ライブラリ:Microsoft Support「Data security and Python in Excel」、「Open-source libraries and Python in Excel」
- Excelの行数の上限:Microsoft サポート「Excel の仕様と制限」
- Power Queryでのフォルダー結合:Microsoft サポート「複数のファイルが含まれるフォルダーからデータをインポートする (Power Query)」
- タスク スケジューラ:Microsoft Learn「開発者向けのタスク スケジューラ」、「ExecAction object」
- Anacondaの利用条件:Anaconda「Terms of Service」
- 認定試験の概要:Pythonエンジニア育成推進協会「Python 3 エンジニア認定基礎試験」、「Python 3 エンジニア認定データ分析試験」主教材変更のお知らせ
NEWSLETTER
選んだ職種・業種に合わせた記事を、週1回メールで
週刊MONOSCOPEは、登録時に選んだ職種・業種に合わせた記事を週1回お届けする無料のメルマガです。
職種・業種を選んで登録へ ›無料・週1回。登録後に届く確認メールのリンクを押すと登録が完了します。配信はメール内のリンクからいつでも停止できます。
WEEKLY NEWS
今週の製造業ニュース10選
メルマガは職種・業種に合わせた記事。LINEとnoteでは、全員共通の10本を毎週土曜の朝にお届けします。
LINEでニュース10選を受け取るnote今週のニュース10選をnoteで読む ›

コメント