トップページ -> データの扱い -> 種々のオープンデータ -> 政府統計の総合窓口, 市町村の人口総数(人)
[サイトマップへ], [サイト内検索へ]

政府統計の総合窓口, 市町村の人口総数(人)

この Web ページでは, 政府統計の総合窓口 (e-stat) (http://www.e-stat.go.jp/estat/html/spec.html) からダウンロードした統計表データを加工して使用する.

※ 特に、商用目的をお考えの場合には、十分に、使用条件を確認してください。オープンではあっても、使用条件があります.

さらに、SQLite3 のテーブルを生成します。

作成するSQLite3 データベース: estatdb


ダウンロード手順

  1. 政府統計の総合窓口 (e-stat) (http://www.e-stat.go.jp/estat/html/spec.html)
  2. 使用条件の確認. 合意できる場合のみ続行

    ※ 特に、商用目的をお考えの場合には、十分に、使用条件を確認してください。オープンではあっても、使用条件があります.

  3. CSV ファイルのダウンロード
    1. 都道府県・市区町村のすがた
    2. → 地域別統計データベース、
    3. データ種別:市町村データ
    4. 地域区分:絞り込みなし(1913件)
    5. 項目:A1101人口総数(人)
  4. 解凍、文字コードの調整
    unzip StatChiiki_20131010232403.zip 
    nkf -w StatChiiki_20131010232403.csv > /tmp/a.csv
    cp /tmp/a.csv StatChiiki_20131010232403.csv 
    
  5. ファイルのヘッダ2行を削除
  6. ファイルの「特別区部,13100」の行を削除
  7. csv 形式に変換.通し番号の追加.列数の統一

    「libreoffice StatChiiki_20131010232403.csv」で読み込み、 直ちに保存.これで書式を調整

    cat -n StatChiiki_20131010232403.csv  | sed 's/ /,/g' | sed 's/\t/,/g' | sed 's/^,,,,,//g' | sed 's/^,,,,//g' | sed 's/^,,,//g' | sed 's/^,,//g' > /tmp/a.csv
    cp /tmp/a.csv StatChiiki_20131010232403.csv 
    
    #!/bin/bash
    cat >/tmp/a.$$.rb <<-RUBY
    require "csv"
    reader = CSV.open("StatChiiki_20131010232403.csv", "r") 
    reader.each do |row|
      if row.count == 5
        printf("%d, %s, \"%s\", %d, %d\n", row[0], row[1], row[2], row[3], row[4] )
      elsif row.count == 6
        printf("%d, %s, \"%s %s\", %d, %d\n", row[0], row[1], row[2], row[3], row[4], row[5] )
      else
        print "ERROR"
      end
    end
    RUBY
    cat /tmp/a.$$.rb | ruby > /tmp/a.csv 
    cp /tmp/a.csv StatChiiki_20131010232403.csv 
    
  8. ヘッダの調整 ファイルの先頭に「seq, todoufuken, shichoson, jiscode, populate」と書いた1行を挿入

SQLite3 データベースの生成

使用するソフトウエア

あらかじめ決めておく事項

この Web ページでは,データベースの作成を行うので, 作成するデータベースのデータベース論理名を決めておくこと. この Web ページでは,次のように書きます.

テーブルの作成

  1. テーブル定義

    bash プログラム

    #!/bin/bash
    
    rm -f /tmp/estatdb
    #
    cat >/tmp/a.$$.sql <<-SQL
    drop table chiiki;
    SQL
    cat /tmp/a.$$.sql | sqlite3 /tmp/estatdb
    #
    cat >/tmp/a.$$.sql <<-SQL
    create table chiiki (
    seq INTEGER PRIMARY KEY NOT NULL, 
    todoufuken text, 
    chiikimei text, 
    jiscode integer, 
    populate integer
    );  
    SQL
    cat /tmp/a.$$.sql | sqlite3 /tmp/estatdb
    

    [image]
  2. テーブルの作成

    bash プログラム

    #!/bin/bash
    
    cat >/tmp/a.$$.sql <<-SQL
    .mode csv
    .import /tmp/a.$$.csv chiiki
    vacuum; 
    SQL
    #
    tail -n +2 /tmp/StatChiiki_20131010232403.csv > /tmp/a.$$.csv
    cat /tmp/a.$$.sql | sqlite3 /tmp/estatdb
    # 
    echo 'select * from chiiki limit 10;' | sqlite3 /tmp/estatdb
    

    [image]

    SQLiteman で確認

    [image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]