【続編】複数列の先頭ゼロを守る!Pandasでのデータ処理方法

前回記事(こちら)では、郵便番号や商品コードの先頭ゼロが消えないようにするため、Pandas
で特定の列を文字列型(str
)で読み込む方法を紹介しました。
しかし、実務では複数の列に対して同様の処理が必要になる場面も多いですよね。
今回は、その複数列に対する対応方法について解説します!
🔍 複数列を文字列型で読み込むには?
前回の記事で紹介したように、Pandas
では特定の列を文字列型として読み込む際に、以下のように指定しました。
import pandas as pd
# 郵便番号の列を文字列型で読み込む
df = pd.read_csv('https://biz-data-analytics.com/pandas-multiple-columns-keep-leading-zeros-11110.csv', dtype={'郵便番号': str})
📋実行結果:
ID | 郵便番号 | 商品コード |
---|---|---|
123 | 0456789 | 456 |
45 | 0123456 | 789 |
1234 | 0012345 | 1234 |
└─────────┬─────────────────────────────┘
▼
しかし、実際は、この場合、ID
,商品コード
の両方の列に対して先頭のゼロを守りたいですよね?
✅ 複数列を一度に指定する方法
次のコードが複数列を一度に指定する方法です:
df = pd.read_csv('https://biz-data-analytics.com/pandas-keep-leading-zeros-11074.csv', dtype={'ID':str'郵便番号': str, '商品コード': str})
構文のポイント💡
複数の列を指定する場合は、カンマ(,
)で区切るだけ!これは、Python
の辞書型(dictionary
)の書き方と同じですね。
pd.read_csv('CSVファイル名', dtype={'列名1': データの型, '列名2': データの型})
▲
│
data type
(データ型)の略で、Pandas
がデータをどの型として扱うかを指定するための引数
┌┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐dtype={"列名1": str, "列名2": int}
の右辺は 辞書(dictionary
)の記述
キーに列名、値にデータ型(例: str
や int
)を指定
└┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘

複数の列を指定する場合は、カンマ(,)で区切るだけ!] これは Python の辞書型(dictionary)の書き方と同じ
📋実行結果:
以下が指定されたデータを表形式に変換したものです。
ID | 郵便番号 | 商品コード |
---|---|---|
00123 | 0456789 | 000456 |
00045 | 0123456 | 000789 |
01234 | 0012345 | 001234 |
先頭のゼロが完全に守られていることが確認できます!🙌
🔥 全体を文字列型にしたくない場合のベストプラクティス
前回の記事でも紹介しましたが、dtype=str
で全体を文字列型にする方法もあります。
しかし、数値として扱いたい列まで文字列になってしまうと、ソートや集計時に誤りが発生する可能性があります。
そのため、必要な列のみを明示的に指定する方法が、実務では一番安全でおすすめです。
🚩 まとめ
- 複数列に対して先頭ゼロを守るには、
dtype
パラメータに辞書型を使う。 - カンマで区切ることで、複数の列を一度に指定可能。
- 全体を文字列型にするのではなく、必要な列だけを指定するのがベスト。
これで、複数の列の先頭ゼロも安心して守れますね!🛡✨
次回は、Excelへの書き出し時にゼロを維持する方法についても触れていこうと思います。
お楽しみに!