2015年9月1日火曜日

大規模DBの項目別出現数をカウントする方法

私のささやかなGIS技術習得 6

大規模DB(excel)で項目別出現数あるいは項目別集計がきわめて簡易にできる方法を知りましたのでメモしておきます。

これまではWEBでみつけた関数式をつかって項目別出現数を求めていました。

その方法では体験的に7万件のデータまでしか扱えなく、それ以上のデータになるとexcelがハングアップしてしまいました。

全国墨書土器・刻書土器データベース(明治大学日本古代学研究所)の全国データは117084件のデータですから、以前はこのデータファイルを半分にして2回にわけて出現数を求め、その結果をマージしていました。

ところが、まさに一瞬にして117084件データの項目別出現数を求める方法を知りましたので驚きです。

次の画面は全国墨書土器・刻書土器データベース(明治大学日本古代学研究所)の全国データ(csvファイル)です。

全国墨書土器・刻書土器データベース全国データ画面

このデータの釈文欄記載の出現数を求めてみました。

次のような作業ファイルをexcelで作ります。

Excel作業ファイル

釈文欄だけを抽出し、その隣にすべて1を記入したものです。

このファイルの文字数値記入セル全部を範囲指定して、挿入→ピボットテーブルに進みます。

詳細な操作説明は省きますが複雑な操作はありません。

新しいシートができるので次の画面右のように行ラベルに釈文を、Σ値欄に合計/数を入れると、即画面左のような項目別出現数(行ラベル別合計/数)が表示されます。

文字通り「即」つまり一瞬です。データ数は117084件あるのです。

ピボットテーブルのシート画面

この行ラベル(釈文)と合計/数(出現数)を別シートにコピーして降順ソートすれば出現数別釈文のリストができます。

そのリストを整理して上位100位までを表示すると次のようになります。

全国墨書土器・刻書土器データベース 釈文欄記載内容の出現数 1位~100位

なお、釈文欄記載内容数(項目数)は全部で16303件でした。

excelのピボットテーブルを使えば、例えば小字データベースの小字名出現数なども極めて簡易に求めることができることがわかりました。

住所からアドレスマッチングで得た空間情報の同一地点出現数を知ることも簡単にできます。

ピボットテーブルの操作があまりにも簡易高速なので、これまで関数式で汗をかいていた自分が今浦島のように感じます。

0 件のコメント:

コメントを投稿