【Python】エクセルのデータを計算する

 

エクセルに書かれたデータをPythonで読み込んで計算してみます。

 

スポンサーリンク

 

使用するデータ

 

githubにあった、アメリカの人口データ(エクセル)を使用します。

 

https://github.com/oreilly-japan/automatestuff-ja/tree/master/ch12

 

中身はこんな感じです。

 

 

72000ほどの行で構成されています。

 

Stateというのが州ですね。Countyは群です。カリフォルニア州サンフランシスコ群 みたいな感じです。POP2010が人口です。Census Tractが人口を調査した地域(人口調査標準地域)ですね。

 

同じ群の人口の合計値を求める時に、エクセルで範囲を指定して合計値を出して〜とやっているとかなり時間がかかります。

 

コードを書いて自動化してみます。

 

コードの概要

 

openpyxlモジュールを使って、エクセルのデータを読み込みます。

 

読み込んだ後の流れは以下の通り。

 

  1. WorkBookオブジェクトを取得する
  2. WorkSheetの名前を確認する
  3. WorkSheetオブジェクトを取得する
  4. セルの値を取得&加算して、辞書に保存する
  5. 辞書をファイルに保存する
  6. 保存した辞書のデータにアクセスする

 

エクセルシートのデータの読み込みや計算は重いので一回だけ行うことにして、結果を辞書に保存しておきます。

 

コード

 

 

少し長くなってしまいましたが、重要なのは三次元の辞書を作ってデータを代入するところでしょうか。州と群のキーがなかった場合にsetdefaultをして追加しておかないと、データを代入する時にキーエラーが発生します。

 

保存したデータを読み込んで表示してみます。

 

 

サンフランシスコの人口80万人が取得できました。

 

 

参考