Giter Site home page Giter Site logo

estatapi-python's Introduction

estatapi-python

estatapi-pythonは e-StatのAPI機能を扱うためのPythonパッケージです。

現在はAPI機能のうち、以下の機能をサポートしています。

  1. 統計表情報取得(GET)
    • 統計表の情報(統計表ID、調査名、統計表名、調査年月等)を提供する機能。 検索キーワード等を指定することで、絞込みが可能。
  2. メタ情報取得(GET)
    • 統計表(統計表ID)に含まれるメタ情報(集計事項、地域事項、分類事項等)を提供する機能。
  3. 統計データ取得(GET)
    • 統計表(統計表ID)に収録されている統計データ(数値データ)を提供する機能。 必要に応じて、データセット、メタ情報による絞込みを行うことができる。 提供するデータが大量の場合は、分割して提供される。

インストール方法

pip install git+https://github.com/savioursho/estatapi-python.git@main

アプリケーションIDの取得

e-StatのAPI機能を利用するには、アプリケーションIDが必要です。

以下の利用ガイドから、ユーザ登録・アプリケーションIDの取得をお願いします。

利用ガイド | 政府統計の総合窓口(e-Stat)−API機能

使用方法

アプリケーションIDの設定

>>> import estatapi
>>> # 取得したアプリケーションIDを設定する
>>> APPID = "YOUR_APPID"
>>> estatapi.set_appid(APPID)

統計表情報取得

>>> from pprint import pprint
>>> # 統計表情報を取得する
>>> stats_list_response = estatapi.get_stats_list(limit=3, statsField="02")
>>> pprint(stats_list_response.json(), depth=3)
{'GET_STATS_LIST': {'DATALIST_INF': {'NUMBER': 19028,
                                     'RESULT_INF': {...},
                                     'TABLE_INF': [...]},
                    'PARAMETER': {'DATA_FORMAT': 'J',
                                  'EXPLANATION_GET_FLG': 'Y',
                                  'LANG': 'J',
                                  'LIMIT': 3,
                                  'SEARCH_KIND': 1,
                                  'STATS_FIELD': '02'},
                    'RESULT': {'DATE': '2024-04-14T09:01:46.136+09:00',
                               'ERROR_MSG': '正常に終了しました。',
                               'STATUS': 0}}}
>>> # 統計表情報をpandasデータフレームに変換する
>>> df_stats_list = estatapi.stats_list_to_pandas(stats_list_response.json())
>>> df_stats_list.head()
          @id        STATISTICS_NAME CYCLE  SURVEY_DATE   OPEN_DATE  
0  0000030001  昭和55年国勢調査 第1次基本集計 全国編     -       198010  2007-10-05   
1  0000030002  昭和55年国勢調査 第1次基本集計 全国編     -       198010  2007-10-05   
2  0000030003  昭和55年国勢調査 第1次基本集計 全国編     -       198010  2007-10-05   

メタ情報取得

>>> from pprint import pprint
>>> # メタ情報を取得する
>>> meta_info_response = estatapi.get_meta_info(statsDataId="0000030001")
>>> pprint(meta_info_response.json(), depth=3)
{'GET_META_INFO': {'METADATA_INF': {'CLASS_INF': {...}, 'TABLE_INF': {...}},
                   'PARAMETER': {'DATA_FORMAT': 'J',
                                 'EXPLANATION_GET_FLG': 'Y',
                                 'LANG': 'J',
                                 'STATS_DATA_ID': '0000030001'},
                   'RESULT': {'DATE': '2024-04-14T09:01:53.803+09:00',
                              'ERROR_MSG': '正常に終了しました。',
                              'STATUS': 0}}}

統計データ取得

>>> from pprint import pprint
>>> # 統計データを取得する
>>> stats_data_response = estatapi.get_stats_data(statsDataId="0000030001")
>>> pprint(stats_data_response.json(), depth=3)
{'GET_STATS_DATA': {'PARAMETER': {'ANNOTATION_GET_FLG': 'Y',
                                  'CNT_GET_FLG': 'N',
                                  'DATA_FORMAT': 'J',
                                  'EXPLANATION_GET_FLG': 'Y',
                                  'LANG': 'J',
                                  'METAGET_FLG': 'Y',
                                  'START_POSITION': 1,
                                  'STATS_DATA_ID': '0000030001'},
                    'RESULT': {'DATE': '2024-04-14T09:01:57.299+09:00',
                               'ERROR_MSG': '正常に終了しました。',
                               'STATUS': 0},
                    'STATISTICAL_DATA': {'CLASS_INF': {...},
                                         'DATA_INF': {...},
                                         'RESULT_INF': {...},
                                         'TABLE_INF': {...}}}}
>>> # 統計データをpandasデータフレームに変換する
>>> df_stats_data = estatapi.stats_data_to_pandas(stats_data_response.json())
>>> df_stats_data.head()
  全域集中の別030002 全域集中の別030002_階層 男女A030001 ...       
0            全域                1      男女総数            ...  117060396  
1            全域                1      男女総数            ...   89187409  
2            全域                1      男女総数            ...   27872987  
3            全域                1      男女総数            ...    5575989  
4            全域                1      男女総数            ...    1523907  

クレジット

「このサービスは、政府統計総合窓口(e-Stat)のAPI機能を使用していますが、サービスの内容は国によって保証されたものではありません。」

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.