DPCデータの分析とかやるブログ

DPCデータの分析なんかをテキトーにやってます。

【雑談】DPCデータを扱う手法② 成功例編

前回に引き続き雑談です。 DPCデータを扱う上で、今のところ上手く行っているものを上げます。

     

PostgreSQL(現在も運用中)

まあ、基本と言えば基本です。DPCデータのように、データ量が膨大で、かつ蓄積される性質のものであれば、SQLサーバーが最初の選択肢になります。
ひとくちにSQLと言っても様々で、MicrosoftSQL ServerOracleMySQLSQLiteと色んな種類があります。
ネット上を調べると、MSのSQL ServerAccessの組み合わせでDPCデータ分析をしているところもあるようですね。
自分がPostgreを選択したのは、オープンソースで自由に使えるからです。
ドキュメントも豊富ですし、他の言語と組み合わせて使うときにも苦労がありません。

     

Python + Pandas(現在も運用中)

この仕事を始めるまで知りませんでしたが、データ分析の世界ではPythonとRが主流になっています。

(Juliaはどうした!という方は、たぶんこのブログを読む必要がない筈です)

Pythonのライブラリ、Pandasは行列データ(Excelの表みたいな形のデータ)を極めて効率的に扱えます。
数GBの巨大なデータでも扱えますし、実行速度も高速です。
また、Pandasを使えば記法もシンプルになります。
例としてタブ区切りテキストファイルを読み込むコードです。

import pandas as pd
data = pd.read_csv('DRGEF.TXT',delimiter='\t',encoding = 'shift_jisx0213')

import pandas as pdとなっている部分でPandasを読み込んでいます。
実質一行で読み込みは終わり、後は作業に取りかかるだけです。
PandasにはExcelでいうところの「空白セルの穴埋め」を高度に行うfillnaメソッドや、SQLでいう「テーブルの合成」を行うmergeconcat、更に同じカテゴリーでのグループ集計を行うgroupbyメソッドといった便利な機能が山ほど実装されています。
(とりわけgroupbyメソッドは重要です。これを使えば、データ識別番号別、科別、医師別、病棟別と様々な切り口での集計が一行で出来ます)  

Pandasライブラリの機能はあまりにも膨大で、私もまだ入り口に立ったくらいの感覚ですが、恐らくエクセルで行われているような統計業務、データ集計業務の殆どはPandasで自動化出来るでしょう。