ようへいの日々精進XP

よかろうもん

ショロカレ 11 日目 | 初老と Python(2)〜 dict 型のデータを colletions モジュールで集計する 〜

これは

初老丸アドベントカレンダー 11 日目の記事です。

qiita.com

ということで、小ネタ大ネタを交えて 12/25 まで張り切っていきましょう。

初老と Python(2)

福岡市の人口

上司:あー、この list の中に入っている dict 型のデータから各キー毎の数値を集計してくさ

初老:承知仕り、要は福岡市の男性と女性の人数を算出しろってことですな

渡された、dict 型データは以下のようなデータ。

_dict = [
    {'東区': {'男':151463, '女': 159614}},
    {'博多区': {'男': 111692, '女': 122038}},
    {'中央区': {'男': 86813, '女': 108072}},
    {'南区': {'男': 120229, '女': 137904}},
    {'城南区': {'男': 61674, '女': 69562}},
    {'早良区': {'男': 102788, '女': 115247}},
    {'西区': {'男': 100422, '女': 108619}}
]

2016 年 12 月現在の福岡市の区別の人口。(※こちらより引用させて頂きました。)

collections モジュール

dict 型を集計する場合、collections を使えば超簡単に集計することが出来るったい。(データ構造にも寄ると思う。複雑な dict だとそれなりに辛いと思う)

# -*- coding: utf-8 -*-

import collections

_dict = [
    {'東区': {'男':151463, '女': 159614}},
    {'博多区': {'男': 111692, '女': 122038}},
    {'中央区': {'男': 86813, '女': 108072}},
    {'南区': {'男': 120229, '女': 137904}},
    {'城南区': {'男': 61674, '女': 69562}},
    {'早良区': {'男': 102788, '女': 115247}},
    {'西区': {'男': 100422, '女': 108619}}
]

counter = collections.Counter()
for data in _dict:
    for k, v in data.iteritems():
        counter.update(v)
#
print '男: ' + str(counter.get('男'))
print '女: ' + str(counter.get('女'))

男女の人口を報告

初老:上司さん、以下のような感じでいいすかねー。

$ python test.py
男: 735081
女: 821056

初老:女子率高いですねー

上司:うむ、さすが福岡ったい

以上

メモでした。