Pythonと本と子供と雑談と

いつからはじめても遅くない

e-StatsのデータIDを検索するテーブルを作った

あつい。pyconjpのトークをオープンデータを使うなんてタイトルにしてしまった。今は反省している。という感じですが、タイトルに偽り有ではいけない。

なのでオープンデータから使えるものを探さないといけなくなりました。そしてそれはかなりの迷宮かもしれません。量が多い上に、私はデータの扱いをよく分かっていません。

一先ずサイトを見た

Python Kansaiの古崎先生のトークでLOD使ったらすごいものができるのではないかと思った私は、急いでestats-LODを見に走りました。

data.e-stat.go.jp

しかし、過去のデータが少ない・・・過去からの変化が見られないと面白くないような気がするので、ちょっと今回は利用を見送ることにしました。

次に普通のサイトを見ました。

www.e-stat.go.jp

私は思いました。「ここからAPIで取れば簡単じゃないか」。しかし、自分でデータのIDを探して入れろとありました。終わりました。

そんなもの見つけられるわけがない。

とりあえずデータIDを探すものを作ることにした

偉い人は言いました。「困ったら作れ!」

とりあえず、データのIDを探すものを作ろうと思いました。データの一覧の取得は、APIでできることが分かりました。「簡単じゃないか」

appIDを取得し、jsoncsvにしてpandasのDataFrameにして、DashのDataTableで表示して、ソートしたり、単語で検索できるようになりました。

「簡単すぎるじゃないか」

Dash凄い。実はestatsのサイトにデータIDの検索があるのですが、色々と入力して検索しないといけません。どんなものがあるのか?ということも理解しながら検索するのには向いていないので、全部のデータが見られるようにしました。

ちなみに統計表の全データは15万行くらいで、jsonだと200mくらい、csvだと80mくらいです。

herokuにあげたとき事件は起こった

「このアプリ結構便利ではないか!」と思った私は、いつも通りherokuにあげようと思いました。ちなみに運用はホビーでメモリ512mbでした。

アプリをあげると事件が起こりました。サイトでエラーが発生したのです。ウームなんだろうか。ローカルでは動いたのだが。

herokuのダッシュボードを見ると、メモリの利用が512mbを大きく超えて750mbくらいになっていました。

うーむ。参った。
これまでメモリなど全く気にかけてこなかった私。いきなり起こったメモリ問題に、びっくりしています。通常300mbほどの利用だったのですがねぇ。

まとめ

とりあえず、githubは元に戻して、ローカルで使って喜んでおくくらいにします。

メモリの問題はちょっと調べて、これを機に賢くなりたい。

昨日ちょうど、Vaexとpandasの記事を読んでて、pandasはメモリが10倍くらい必要みたいなことが書いていたので、もしかしたらこれかとも思ったけど、違うかもしれない。

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理