青竹雑記帖(6代目)

テキスト処理をメインとしたIT解説をします。

文字だけで扱うコンピュータの世界(11):テキストデータの料理準備(素材の形を揃えよ)

承前

ここまで10回 + おまけ1回の記事を読んでくださり、1世紀……いえ、1週間でしたか、それくらいの期間にわたるお試し活用をしたことで、テキストデータを作る方法のひとつである「テキストエディタを活用した文章などの記録」に関する基礎的な技が習得できたと信じています。まだテキストエディタを3分しか開いていない方は、少なくとも30分くらい遊んでみてください。すると明日のご飯が真鯛の刺身になります。高級なものはなかなか食べられませんが、近所のスーパーには養殖真鯛のサクが数百円くらいで並んでいたりします。九州は真鯛が全国よりも安いらしいのですが、詳細を調べたことはないので地域価格差を調べてみたいですね。15年前くらいの統計しか見つからなかったのでそれで比較しますと、10都市(札幌・仙台・東京・横浜・名古屋・京都・大阪・神戸・広島・福岡)の卸売1kgあたり平均価格が1,007円、各都市別には札幌2,009円、東京1,056円、大阪986円のところ、福岡が885円でした。他の項目も見ると、福岡だけで全国平均値を大きく引き下げているような価格水準でした。今もたぶん安めの水準だと思うので、みんな魚を食べに来てください。

www.e-stat.go.jp

食材の調理はここではできないので、テキストデータを調理します

閑話休題。みなさんの手元にテキストデータがたくさん生成されたと期待したいところですが、とにかく先を読んでみたい! という方に、面白そうなデータを探して持ってきてみることにします。最近は「オープンデータ」という取り組みで、たとえば郵便番号と住所の対応表ですとか、地域の災害時避難場所の一覧ですとか、先ほど述べた政府統計などが自由に利用できるようになっています。それらも、かつてはにっくきExcelワークシート形式でしたが、最近では、Excelでも読み込むことができて、それ以外の方法でも読み込んだり、幅広い活用が実現できるCSV(Comma Separated Values・カンマ区切りデータ)という、テキストデータで提供されるようになってきています。ありがたい話し!

ここでは、日本郵便が作成し、自由に利用できると明言している郵便番号データを利用してみます。ひとまず、「住所の郵便番号(CSV形式) > 読み仮名データの促音・拗音を小書きで表記するもの」とリンクをたどり、全国一括データ「ken_all.zip」をダウンロードしてみましょう。ダウンロード後、zipファイルを展開すると、KEN_ALL.CSVというファイルが出てきます。

www.post.japanpost.jp

KEN_ALL.CSVというファイルもテキストデータであり、かつ、テキストファイルによって実現されたシンプルなデータベースのひとつであると言えます。最近のExcelLibreOffice Calcでは、全国一括版のデータも最後まで全部読み込むことができますが、古いバージョンだと「ファイルが大きいので一部だけ読み込みました」のようなメッセージが出てくることがあります。今回は表計算ソフトを使わない方法でアプローチしますので関係はありませんが、このことを覚えておくと役に立つかもしれません。

さて、このファイルをテキストエディタMery」で開くと、次のような感じになります。

郵便番号データ「KEN_ALL.CSV」をテキストエディタ Mery で開いた画面です。
郵便番号データ「KEN_ALL.CSV」をテキストエディタ Mery で開いた画面です。

ちなみに、最終行は124,562行目(12万4562行目)で、沖縄県八重山郡与那国町与那国になります。このファイルは、めちゃくちゃな形式で書かれているわけではなく、一定の形式(フォーマット)に従って情報が書かれています。その説明は次のリンクにあります。

www.post.japanpost.jp

カンマ記号(,)で区切りつつ、15個の情報が記述されています。これをExcelに読み込ませると一覧表として分かりやすくなります……が、普通に開くと郵便番号データとの相性が悪いある種お節介な機能のため、データが正しく読み込まれません。頭のゼロが消えてしまいます。これは、郵便番号の数値を「数字」として変換してしまい、数字は先頭にゼロが来ないことから、それをバッサリ切ってしまいます。これを回避するには別の開き方をする必要があったと思いますが、方法を忘れましたのでプロの情報を探してください。LibreOffice Calcですと読み込む際に「テキストのインポート」という画面が出て、そこで列の種類として「テキスト」を選ぶときちんと頭にゼロがついたまま読み込んでくれます。

Excelですとデフォルトでは頭のゼロが消えてしまいます。
Excelですとデフォルトでは頭のゼロが消えてしまいます。

テキストエディタによっては、CSVをきれいに表示してくれる機能を持っていたり、CSVのデータ区切りを利用して簡単な計算機能を実現しているものもあります。私が知っているCSV専門のテキストエディタは「Cassava Editor」です。お試しください。

www.asukaze.net

何が言いたかったか

データ活用のためには、データを一定の形で整えておくことが大事です。料理の際に基本的に食材の大きさを揃えるのと同じだと覚えていただければ。

次回予告

データの料理をしますが、具体的内容を思いついていません。どうしましょう。考えます。