ExcelからPythonへ移行する最短ルート|操作の対応表つき

Excelで集計や分析をしている人にとって、Pythonの学習は「ゼロからプログラミングを学ぶ」ことではありません。 すでに持っている集計の語彙を、pandasの語彙に翻訳する作業です。 この記事では、その翻訳表と、そもそも移行すべきかどうかの判断基準を示します。

先に結論:全部を移行する必要はない

Pythonを学ぶと決めても、Excelを捨てる必要はありません。 筆者も実務では両方を使い分けています。

Excelのままでよい場面

  • 数百行程度の一度きりの集計
  • 手作業でセルを見ながら整えるような作業
  • 相手にExcelファイルで渡す前提の資料

Pythonに移す価値がある場面

  • 数万行を超えて動作が重くなってきた
  • 毎週・毎月、同じ手順の集計を繰り返している
  • 「どう集計したか」の手順を残して再現できるようにしたい

Pythonの利点を一言で言えば、手順がコードとして残ることです。 Excelの手作業は本人の記憶にしか残りませんが、コードは半年後の自分にも他人にも再実行できます。 繰り返し作業と再現性、この2つに心当たりがあるなら移行の価値があります。

Excel→pandasの操作対応表

pandasはPythonで表データを扱うライブラリです。 Excelの主要操作との対応は次のとおりです。

Excelの操作 pandasでの書き方
ファイルを開く pd.read_csv("data.csv") / pd.read_excel("data.xlsx")
列を選ぶ df["売上"]
フィルター df[df["地域"] == "関東"]
並べ替え df.sort_values("売上")
SUM / AVERAGE df["売上"].sum() / df["売上"].mean()
ピボットテーブル df.pivot_table(index="地域", values="売上", aggfunc="sum")
VLOOKUP pd.merge(df1, df2, on="商品ID")
重複の削除 df.drop_duplicates()
グラフ作成 df.plot()

見てのとおり、Excelの1操作はpandasでもほぼ1行です。 「プログラミング=長いコードを書く」という予想よりずっと短い、というのが移行してみた人の多くが持つ感想だと思います。

移行の3ステップ

対応表を眺めるだけでは身につかないので、順序を決めて進めます。 環境はインストール不要のGoogle Colabを推奨します。

ステップ1:普段のExcelファイルを読み込む

教材のサンプルデータではなく、普段自分が触っているファイルをpd.read_excel()で読み込みます。 最初の1歩を「自分のデータ」にすることで、以降の練習がそのまま実務の予行になります。

ステップ2:いつもの集計を対応表で翻訳する

普段Excelでやっている集計を1つ選び、対応表を見ながらpandasで再現します。 答え(Excelでの集計結果)を自分で持っているので、コードが正しいかを自分で検証できるのがこの練習の利点です。

ステップ3:「毎回やる作業」を1本のコードにまとめる

毎週・毎月繰り返している一連の手順(読み込み→絞り込み→集計→グラフ)を、上から順に実行すれば終わる1本のノートブックにします。 ここまで来ると、翌月からその作業は「実行ボタンを押すだけ」になります。 移行の投資が回収され始めるのはこの段階です。

移行時につまずきやすい2点

Excel経験者ならではのつまずきどころを2つ挙げておきます。

「セルを直接書き換える」感覚が通用しない

Excelでは目についたセルをその場で直せますが、pandasでは「どの条件の行のどの列を、何に変えるか」をコードで指定します。 不便に感じるのは最初だけで、この制約こそが「何をどう変えたか」が記録として残る利点の裏返しです。

日本語の列名や結合セルでエラーが出る

実務のExcelファイルには、結合セル、2行にまたがる見出し、余白の注記などが含まれがちです。 pandasはこうした「人間向けのレイアウト」が苦手なので、読み込みでつまずいたら、まず元ファイルの1行目に列名、2行目以降にデータだけ、という形に整えてから読み込むのが確実です。

まとめ

  • 移行の判断基準は「繰り返し作業」と「再現性」。一度きりの小さい集計はExcelのままでよい
  • Excelの主要操作はpandasでほぼ1行に対応する。対応表で「翻訳」しながら学ぶのが最短
  • 自分のファイルで「読み込み→いつもの集計→定型作業の自動化」の順に進める。学習全体の位置づけはPython独学ロードマップを参照