政府統計のCSVは、文字コードと見出しを確認し、記号の意味を読んでから数値に変換します。
表に見えるものをそのまま数字の一覧だと扱うと、注記をデータへ混ぜたり、非公表の値をゼロに変えたりします。
まず元ファイルを加工せずに保存し、閲覧用の表と、サイトへ取り込む表を分けてください。元データに戻れる状態を作ってから、列と値を整理します。
e-Statで統計を探す手順は統計の探し方にまとめています。ここでは、保存したCSVやExcelを機械で読める形にする作業を扱います。
文字コードを先に決める
e-Statのダウンロードの説明では、クロス集計表形式のCSVにShift-JIS、UTF-8(BOM有り)、UTF-8(BOM無し)の3つがあり、列指向形式はShift-JISだけです。設定画面の全体はe-Statの使い方に、Pythonでcp932やutf-8-sigを指定する読み方はCSVからページを作るに書きました。
CSVだからUTF-8だろうと固定すると、地域名や注記が文字化けします。文字化けした状態を表計算ソフトで上書きすると、元の文字へ戻せなくなることもあります。
保存するときは、選んだ形式と文字コードを取得記録に書きます。ファイルを受け取った場合は、送り手の設定や配布元の説明を確認します。読み込み時に文字の変換エラーが出たら、無視する設定で先へ進めないでください。
列名が見た目では同じなのに照合できないときは、空白だけでなく、ファイル先頭のBOMが1列目の名前に混ざっていないかも調べます。
注記と見出しを分ける
政府統計のファイルには、表題、調査年、単位、注記が表の上に入ることがあります。画面では読みやすくても、機械にはどの行が列名か分かりません。
先頭から何行捨てる、とだけ決めるのは避けます。更新で説明が一行増えると、列名の行までずれてしまうからです。必要な列名がそろっているかを確かめ、数値の範囲を見分けて取り込みます。
これは注記を不要扱いすることではありません。処理用の表から外した注記も、出典、単位、対象範囲として別に保存します。公開ページに必要な説明は、表の近くへ戻します。
複数行の見出しでは、上段が産業、下段が事業所数と従業者数、という構造もあります。下段だけを列名にすると同じ名前が重なります。上段の区分と下段の項目を組み合わせ、どの数値か識別できる列にします。
ただし、似た名前の列を勝手に統合しません。総数と内訳、実数と構成比など、意味の違う項目が並んでいないかを元の表で確かめます。
記号には個別の意味がある
「-」「…」「x」のような表示を見つけたら、その統計と、その公表版の利用上の注意を開きます。すべて欠損だから同じ空欄にする、と処理すると、未調査と秘匿の違いが消えます。経済センサスと就業構造基本調査で同じ記号の意味がどう違うかは、データの空欄の見せ方で並べています。
取り込み規則には、記号ごとの意味を、どの資料のどの公表版で確かめたかと一緒に書きます。
ハイフン、点、小文字のxへ統一して保存する前に、原文の全角・半角や大文字の違いも確認します。見た目を整える処理が、異なる記号を同じものにしてしまうことがあります。
処理用には、元の文字、数値へ変換できた値、値がない理由を分けて持たせます。元の文字が残っていれば、取り込み規則を直した後も再確認できます。
CSVを文字で切らない
CSVの一行を、単にカンマの位置で分割してはいけません。引用符で囲まれた項目の中に、カンマや改行が含まれる場合があります。注記や名称を途中で切ると、後ろの数値が別の列へずれます。
Pythonなら、文字列の分割処理を自作せず、標準のcsvモジュールを使います。説明にあるとおりファイルはnewline=''で開き、文字コードは先に確かめたものを指定します。
CSVとして読めた後に、必要な列がそろうか、列名が重複しないか、数値欄に想定外の文字がないかを調べます。CSVの読み取りに成功したことと、統計として正しいことは別の確認です。
数値へ変換できない値が来たら、その行を無条件で捨てず、元の行と理由を確認できるようにします。不明な記号のまま集計を進めない仕組みにしておけば、欠落に気付かずランキングを更新することを防げます。
Excelは見出しを復元する
Excelでは、複数列にまたがる見出しに結合セルが使われることがあります。機械で読むと、結合された範囲の全セルに同じ見出しが入っているとは限りません。
Microsoftの結合セルの説明によると、結合したセルに残るのは左上のセルの内容だけで、ほかのセルの内容は削除されます。結合を解除すると、内容は左のセルに入ります。解除しただけでは、どの列の見出しだったかは戻りません。
取り込みでは、見出しの範囲と数値の範囲を分けます。結合されていた見出しを必要な列に対応させ、その後で表の各行を読みます。すべての空欄を上の値で埋める処理は、数値がないセルまで前の数値に変えてしまいます。
たとえば地域別の設備台数を扱う設計で、地域名の見出しを補う処理と、設備台数の空欄を補う処理は分けます。後者の空欄は、未調査や非公表かもしれません。
元の値と変換後を並べる
取り込み処理を作ったら、文字化けしやすい名称、注記のある項目、記号を含む行を選び、元の表と並べて確認します。先頭の数行が読めたことだけで、ファイル全体を正しく扱えたとは判断しません。
処理の設計例として、地域別の製造業の数値を取り込む場合を考えます。元の表示がXなら、公開用の数値欄には数値を入れず、非公表という状態を持たせます。画面ではその理由が分かる表示を出します。内部の空欄と、読者への説明を分ける形です。
同じ列の別の行が数値の0なら、こちらはゼロとして保持します。Xと0が同じ計算結果へ流れ込まないか、集計する手前で確かめます。合計を出す場合も、非公表の項目を無視した合計を地域全体の値と表示しないようにします。
数値の欄に単位や脚注の印が付いている場合は、取り除く前に規則を確認します。数字以外をすべて削る処理では、負数の符号や小数点、意味のある記号まで失うおそれがあります。
また、表計算ソフトで開いて保存し直す工程を挟むなら、コードの先頭ゼロなどが変わっていないかを見ます。数を表す列と、識別に使う列を分け、識別用の値まで数値へ変換しない設計にします。
公開前の確認表には、何件読み取れたかだけでなく、どの記号を何件扱ったか、不明な値が残っていないかも記録します。件数の変化を調べる際も、対象地域が増えたのか、読み取りで行が落ちたのかを区別します。
更新前に差を確認する
次回も同じ形式で来ると決めつけず、前回と列名、地域の件数、記号の種類を比較します。新しい列が加わったら、用途を読んでから取り込み規則を変えます。
公開する数字は、元の表の該当する値と照合します。地域、項目、対象時点をそろえ、違う行の数字を正しいものとして通さないようにします。本文への書き写しも含めた確認は出典との照合にまとめています。
公開への反映は、読み取り、意味の確認、既存データとの差の確認を終えてからです。自動化する場合も、異常があったときに止める条件を先に決めます。取り込み後に各行を公開ページへ変換する流れはCSVからページへにつなげて設計します。
取得したファイルから公開する表までの流れ全体は、DB型のサイト設計で扱っています。一つの表で作った記号の規則は、別の統計へそのまま流用しません。
出典の確認日:2026年10月26日。