PythonでExcelファイルを読み込むとき、pandasのread_excelを使う方は多いと思います。
私もその一人なのですが、いつだったか「数字の先頭ゼロが消える」という事件に直面しました。
扱っていたのは社内の職員名簿。社員番号の先頭にゼロが付いているのに、
読み込むとあっさりゼロが落ちてしまうのです。
0が落ちてデータが大混乱
ゼロが落ちた結果、社員番号が別の人とかぶってしまい、
「重複データ扱い」になってしまうハプニングが発生。
エクセルで確認してもデータは合っているのに、
pandasで読み込むと別世界。
エラーでもないのにトラブル続きで、思わず「なんでーー!?」と叫びたくなりました。
ググりの旅へ
冷静になりGoogle先生に相談。
「pandas read_excel 先頭ゼロ」「文字列 読み込み」などキーワードを変えて検索すること数分。
たどり着いたのはpandasの公式ドキュメントを解説するサイトでした。
そこで目に飛び込んできたのが、dtype
パラメータの説明。
「これだーーー!!!」
救世主:dtype=str
答えはとてもシンプルでした。
import pandas as pd
# 職員名簿を文字列として読み込む
df = pd.read_excel("staff_list.xlsx", dtype=str)
print(df.head())
このたった一行、dtype=str
を追加するだけで、
先頭ゼロをしっかり保持したまま読み込めるではありませんか。
シンプルすぎて笑ってしまうほどでした。
小さなエラーを乗り越える大切さ
今回の学びは、ただ「dtype=strを使おう」というだけではありません。
小さなトラブルやエラーに出会ったとき、
「なぜだろう?」と調べて、試して、検証するプロセスこそが、
プログラミング初心者の成長の源だと感じました。
一歩ずつでも必ず前進しているのです。
まとめ
- pandasのread_excelで数字の先頭ゼロを保持したいときは
dtype=str
! - エラーやデータの揺らぎは学びのチャンス。
- 調べて試す習慣が、独学プログラマーを一歩ずつ成長させる。
次にまた似たようなことが起きても、きっと大丈夫。
あの日、心の中の鐘が鳴った感動を忘れず、今日もコツコツPythonを楽しんでいきます!