Skip to content

Instantly share code, notes, and snippets.

@skitazaki
Created June 12, 2016 13:41
Show Gist options
  • Save skitazaki/278294810ef3c69cc9ad44a445703de6 to your computer and use it in GitHub Desktop.
Save skitazaki/278294810ef3c69cc9ad44a445703de6 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# pandas で要約統計量を計算する\n",
"\n",
"データ分析に取り掛かるときに、データセットの概要を数値で表現できると便利なことがあります。\n",
"集計軸などは対象とするデータセットによって異なりますが、基本事項として要約統計量を計算しておくと、共通用語の下でデータの傾向を把握でき、作業の手戻りが少なくなることを期待できます。\n",
"\n",
"Wikipedia 日本語版の[要約統計量](https://ja.wikipedia.org/wiki/%E8%A6%81%E7%B4%84%E7%B5%B1%E8%A8%88%E9%87%8F)のページでは3つの統計量について説明があります。\n",
"実際のデータに対して pandas ([Python Data Analysis Library](http://pandas.pydata.org/)) を使ってこれらの値を計算してみます。\n",
"\n",
"- モーメントから求められる要約統計量\n",
"- 順序から求められる要約統計量\n",
"- 度数から求められる要約統計量"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ライブラリを読み込み、グラフをインラインで表示できるように設定します。"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import math\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"from pandas_datareader import wb"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sns.set_style('whitegrid')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## データの用意\n",
"\n",
"今回は世界銀行の API (`data.worldbank.org`) から各国の年ごとの GDP のデータを使います。\n",
"\n",
"世界銀行は Indicators、Projects、World Bank financial data という3種類の API を提供しており、[For Developers](http://data.worldbank.org/developers) のページに説明があります。Indicators は時系列データで、8,000を超えるデータセットがあります。その中に *NY.GDP.MKTP.CD* というコードで表現されるデータがあります。API の使い方は [Indicator Queries](http://data.worldbank.org/developers/api-overview/indicator-queries) のページに説明がありますが、実際にその API を使って構築されているページが [GDP at market prices](http://beta.data.worldbank.org/indicator/NY.GDP.MKTP.CD) です。\n",
"なお、似たものとしては *NY.GDP.PCAP.KD* があり、こちらは一人当たり GDP を表します。 - [GDP per capita](http://beta.data.worldbank.org/indicator/NY.GDP.PCAP.KD)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### API のパラメータを調整\n",
"\n",
"API レスポンスのデータ形式は JSON, XML の両方が提供されていますので、結果を処理するプログラムを書けば良いのですが、 *pandas* においては *pandas_datareader* がこの機能を提供してくれます。 *pandas_datareader* は元々は *pandas.io* としてコア機能に含まれていたものですが、外部モジュールに切り出されたものです。既存のスクリプトで *pandas* をバージョンアップして警告文が表示される場合には、依存ライブラリを追加し、 `import` 文を修正しましょう。\n",
"\n",
"- [pandas-datareader 0.2.1 : Python Package Index](https://pypi.python.org/pypi/pandas-datareader)\n",
"\n",
"それでは、実際にデータを読み込んでみます。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"NY.GDP.MKTP.CD 165\n",
"dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = wb.download(indicator='NY.GDP.MKTP.CD', start=1960, end=2014)\n",
"df.count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"165件あるようです。国の数としては少ないため、 `head()` で先頭の数件を表示してみます。"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>NY.GDP.MKTP.CD</th>\n",
" </tr>\n",
" <tr>\n",
" <th>country</th>\n",
" <th>year</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">Canada</th>\n",
" <th>2014</th>\n",
" <td>1.785387e+12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2013</th>\n",
" <td>1.838964e+12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2012</th>\n",
" <td>1.832716e+12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2011</th>\n",
" <td>1.788796e+12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010</th>\n",
" <td>1.614014e+12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" NY.GDP.MKTP.CD\n",
"country year \n",
"Canada 2014 1.785387e+12\n",
" 2013 1.838964e+12\n",
" 2012 1.832716e+12\n",
" 2011 1.788796e+12\n",
" 2010 1.614014e+12"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"マルチインデクスになっており、上位が国、下位が年度を表しています。\n",
"インデクスの中身は `.index` 属性で確認できます。"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['country', 'year']\n",
"Index(['Canada', 'Mexico', 'United States'], dtype='object', name='country')\n"
]
}
],
"source": [
"print(df.index.names)\n",
"print(df.index.levels[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"国はカナダ、メキシコ、アメリカの3か国になっています。これは、ソースコードの実装で `pandas_datareader.wb` のデフォルトがこの3つになっているためです。各国の GDP を比較したいので、リクエスト条件を調整することにします。\n",
"\n",
"[wb.download](http://pandas-datareader.readthedocs.io/en/latest/remote_data.html#indicators) は `country` 引数を受け付けますので、ここに任意のコードを与えます。 `all` で全てのコードを指定できるのですが、集約コード ([Aggregates - Regions and Income Levels | Data](http://data.worldbank.org/node/246)) も含まれてしまいますので、[Country Queries](http://data.worldbank.org/developers/api-overview/country-queries) を使ってフィルタします。\n",
"\n",
"`get_countries()` 関数で一覧を取得できますので、その結果を見てフィルタ条件を決めます。"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>adminregion</th>\n",
" <th>capitalCity</th>\n",
" <th>iso3c</th>\n",
" <th>incomeLevel</th>\n",
" <th>iso2c</th>\n",
" <th>latitude</th>\n",
" <th>lendingType</th>\n",
" <th>longitude</th>\n",
" <th>name</th>\n",
" <th>region</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td></td>\n",
" <td>Oranjestad</td>\n",
" <td>ABW</td>\n",
" <td>High income: nonOECD</td>\n",
" <td>AW</td>\n",
" <td>12.51670</td>\n",
" <td>Not classified</td>\n",
" <td>-70.0167</td>\n",
" <td>Aruba</td>\n",
" <td>Latin America &amp; Caribbean (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>South Asia</td>\n",
" <td>Kabul</td>\n",
" <td>AFG</td>\n",
" <td>Low income</td>\n",
" <td>AF</td>\n",
" <td>34.52280</td>\n",
" <td>IDA</td>\n",
" <td>69.1761</td>\n",
" <td>Afghanistan</td>\n",
" <td>South Asia</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td></td>\n",
" <td></td>\n",
" <td>AFR</td>\n",
" <td>Aggregates</td>\n",
" <td>A9</td>\n",
" <td>NaN</td>\n",
" <td>Aggregates</td>\n",
" <td>NaN</td>\n",
" <td>Africa</td>\n",
" <td>Aggregates</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Sub-Saharan Africa (developing only)</td>\n",
" <td>Luanda</td>\n",
" <td>AGO</td>\n",
" <td>Upper middle income</td>\n",
" <td>AO</td>\n",
" <td>-8.81155</td>\n",
" <td>IBRD</td>\n",
" <td>13.2420</td>\n",
" <td>Angola</td>\n",
" <td>Sub-Saharan Africa (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Europe &amp; Central Asia (developing only)</td>\n",
" <td>Tirane</td>\n",
" <td>ALB</td>\n",
" <td>Upper middle income</td>\n",
" <td>AL</td>\n",
" <td>41.33170</td>\n",
" <td>IBRD</td>\n",
" <td>19.8172</td>\n",
" <td>Albania</td>\n",
" <td>Europe &amp; Central Asia (all income levels)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" adminregion capitalCity iso3c \\\n",
"0 Oranjestad ABW \n",
"1 South Asia Kabul AFG \n",
"2 AFR \n",
"3 Sub-Saharan Africa (developing only) Luanda AGO \n",
"4 Europe & Central Asia (developing only) Tirane ALB \n",
"\n",
" incomeLevel iso2c latitude lendingType longitude \\\n",
"0 High income: nonOECD AW 12.51670 Not classified -70.0167 \n",
"1 Low income AF 34.52280 IDA 69.1761 \n",
"2 Aggregates A9 NaN Aggregates NaN \n",
"3 Upper middle income AO -8.81155 IBRD 13.2420 \n",
"4 Upper middle income AL 41.33170 IBRD 19.8172 \n",
"\n",
" name region \n",
"0 Aruba Latin America & Caribbean (all income levels) \n",
"1 Afghanistan South Asia \n",
"2 Africa Aggregates \n",
"3 Angola Sub-Saharan Africa (all income levels) \n",
"4 Albania Europe & Central Asia (all income levels) "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_countries = wb.get_countries()\n",
"df_countries.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"インデクス番号2のレコードで incomeLevel、lendingType, region の3つが Aggregates になっています。これはアフリカ全体を集約した結果のレコードです。\n",
"\n",
"レコードの出現頻度を確認するために region で集計してみます。"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>region</th>\n",
" <th>name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aggregates</td>\n",
" <td>49</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>East Asia &amp; Pacific (all income levels)</td>\n",
" <td>37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Europe &amp; Central Asia (all income levels)</td>\n",
" <td>57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Latin America &amp; Caribbean (all income levels)</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Middle East &amp; North Africa (all income levels)</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>North America</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>South Asia</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Sub-Saharan Africa (all income levels)</td>\n",
" <td>48</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" region name\n",
"0 Aggregates 49\n",
"1 East Asia & Pacific (all income levels) 37\n",
"2 Europe & Central Asia (all income levels) 57\n",
"3 Latin America & Caribbean (all income levels) 41\n",
"4 Middle East & North Africa (all income levels) 21\n",
"5 North America 3\n",
"6 South Asia 8\n",
"7 Sub-Saharan Africa (all income levels) 48"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_countries.groupby('region')['name',].count().reset_index()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"集約レコード (Aggregates) が49件あることが分かりましたので、これを除外して国コードを構築することにします。結果を確認すると、インデクス番号2のレコードが除外されていることが分かります。"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0 AW\n",
"1 AF\n",
"3 AO\n",
"4 AL\n",
"5 AD\n",
"Name: iso2c, dtype: object"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_countries[(df_countries['region'] != 'Aggregates')]['iso2c'].head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ついでに、緯度経度に数値が含まれないレコードも確認しておきます。台湾を含め、政治的にも扱いが悩ましいコードであることが分かります。"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>adminregion</th>\n",
" <th>capitalCity</th>\n",
" <th>iso3c</th>\n",
" <th>incomeLevel</th>\n",
" <th>iso2c</th>\n",
" <th>latitude</th>\n",
" <th>lendingType</th>\n",
" <th>longitude</th>\n",
" <th>name</th>\n",
" <th>region</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>41</th>\n",
" <td></td>\n",
" <td></td>\n",
" <td>CHI</td>\n",
" <td>High income: nonOECD</td>\n",
" <td>JG</td>\n",
" <td>NaN</td>\n",
" <td>Not classified</td>\n",
" <td>NaN</td>\n",
" <td>Channel Islands</td>\n",
" <td>Europe &amp; Central Asia (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td></td>\n",
" <td>Willemstad</td>\n",
" <td>CUW</td>\n",
" <td>High income: nonOECD</td>\n",
" <td>CW</td>\n",
" <td>NaN</td>\n",
" <td>Not classified</td>\n",
" <td>NaN</td>\n",
" <td>Curacao</td>\n",
" <td>Latin America &amp; Caribbean (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>147</th>\n",
" <td></td>\n",
" <td>Marigot</td>\n",
" <td>MAF</td>\n",
" <td>High income: nonOECD</td>\n",
" <td>MF</td>\n",
" <td>NaN</td>\n",
" <td>Not classified</td>\n",
" <td>NaN</td>\n",
" <td>St. Martin (French part)</td>\n",
" <td>Latin America &amp; Caribbean (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>Middle East &amp; North Africa (developing only)</td>\n",
" <td></td>\n",
" <td>PSE</td>\n",
" <td>Lower middle income</td>\n",
" <td>PS</td>\n",
" <td>NaN</td>\n",
" <td>Not classified</td>\n",
" <td>NaN</td>\n",
" <td>West Bank and Gaza</td>\n",
" <td>Middle East &amp; North Africa (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>228</th>\n",
" <td></td>\n",
" <td>Philipsburg</td>\n",
" <td>SXM</td>\n",
" <td>High income: nonOECD</td>\n",
" <td>SX</td>\n",
" <td>NaN</td>\n",
" <td>Not classified</td>\n",
" <td>NaN</td>\n",
" <td>Sint Maarten (Dutch part)</td>\n",
" <td>Latin America &amp; Caribbean (all income levels)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>244</th>\n",
" <td></td>\n",
" <td></td>\n",
" <td>TWN</td>\n",
" <td>High income: nonOECD</td>\n",
" <td>TW</td>\n",
" <td>NaN</td>\n",
" <td>Not classified</td>\n",
" <td>NaN</td>\n",
" <td>Taiwan, China</td>\n",
" <td>East Asia &amp; Pacific (all income levels)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" adminregion capitalCity iso3c \\\n",
"41 CHI \n",
"57 Willemstad CUW \n",
"147 Marigot MAF \n",
"199 Middle East & North Africa (developing only) PSE \n",
"228 Philipsburg SXM \n",
"244 TWN \n",
"\n",
" incomeLevel iso2c latitude lendingType longitude \\\n",
"41 High income: nonOECD JG NaN Not classified NaN \n",
"57 High income: nonOECD CW NaN Not classified NaN \n",
"147 High income: nonOECD MF NaN Not classified NaN \n",
"199 Lower middle income PS NaN Not classified NaN \n",
"228 High income: nonOECD SX NaN Not classified NaN \n",
"244 High income: nonOECD TW NaN Not classified NaN \n",
"\n",
" name region \n",
"41 Channel Islands Europe & Central Asia (all income levels) \n",
"57 Curacao Latin America & Caribbean (all income levels) \n",
"147 St. Martin (French part) Latin America & Caribbean (all income levels) \n",
"199 West Bank and Gaza Middle East & North Africa (all income levels) \n",
"228 Sint Maarten (Dutch part) Latin America & Caribbean (all income levels) \n",
"244 Taiwan, China East Asia & Pacific (all income levels) "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_countries[(df_countries['region'] != 'Aggregates') & np.isnan(df_countries['latitude'])]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"属性ごとのデータ型と、有効なレコード数を集計しておきます。"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"adminregion object\n",
"capitalCity object\n",
"iso3c object\n",
"incomeLevel object\n",
"iso2c object\n",
"latitude float64\n",
"lendingType object\n",
"longitude float64\n",
"name object\n",
"region object\n",
"dtype: object"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_countries.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>count</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>adminregion</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>capitalCity</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>iso3c</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>incomeLevel</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>iso2c</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>latitude</td>\n",
" <td>209</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>lendingType</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>longitude</td>\n",
" <td>209</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>name</td>\n",
" <td>264</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>region</td>\n",
" <td>264</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index count\n",
"0 adminregion 264\n",
"1 capitalCity 264\n",
"2 iso3c 264\n",
"3 incomeLevel 264\n",
"4 iso2c 264\n",
"5 latitude 209\n",
"6 lendingType 264\n",
"7 longitude 209\n",
"8 name 264\n",
"9 region 264"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(df_countries.count(), columns=['count']).reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f00b423dc50>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n8SJ79+5l2LBhNGjQgH/+85/YbDaqVq3K9OnTady4canrL168mBEjRji2m0wmR6GLjY2levXqNGjQ\nAKvVyt/+9jeqVavG6NGjWbVqFfPmzQPgq6++4uOPPyY2NrYyvzoRESkDlyh4R44cIS4ujpUrV3LT\nTTfx888/YzKZWLVqFQCffPIJixYt4u9//ztwuTW2atUq8vPziYmJ4aGHHnKcq0qVKrz88sv88MMP\nvP766wDk5+fz8ccf4+Pjw9dff80777zD3LlzS8Vw+PBhnn322WvGaDKZeOyxx/jwww8ZP348LVu2\nBGDGjBnk5ORw8803s2bNGvr06VORX42IiFQQlyh4O3fupFu3btx0000A1KxZk9TUVEaPHs3Zs2cp\nKiqiYcOGjv0feeQR/P398ff3595772X//v20aNHimufPzc3l73//O2lpaQAUFxeXK1673e54HR0d\nzbp16+jVqxffffcdM2fOLNe5RUTEOVx20Mq0adMYNGgQSUlJTJkyhYsXLzo+M5lMjtd2u73U+6uZ\nM2cO9957L0lJScTFxZU61xXNmjXDarVed5wxMTEkJiayfv16unXrho+Py36lIiJezSX+db733nvZ\ntGkTFy5cAODChQvk5+dTt25d4PLIyF/bsmULNpuNnJwcdu/eTevWrUt9HhgYSF5enuN9Xl4e9erV\nAy4POrmaoUOHsnDhQo4fPw5ASUkJK1as+K/9fnvuunXrUrduXeLi4ujVq9d1Zi4iIpXFJW5pNmvW\njOHDhzNo0CB8fX256667GDlyJC+//DI33XQT9957LxkZGY79mzdvzuDBg8nJyeHFF1+kTp06pT7v\n2LEjCxcuJCYmhmHDhvHcc88xbtw45s+ff82Rm82bN2fChAmMGTOGixcvYjKZSvUNXtGrVy8mTZpE\nQEAAK1euxN/fnx49enDhwgWaNm1a4d+NiIhUDJP91x1SbiA2NpbAwECeeeYZo0NxmDZtGi1btqR3\n795/uK/FYiFw59RKiEpEpGyOnckjdOB8l5482mKx0K5du3KdwyVuabqzXr16kZqaSo8ePYwORURE\nfodL3NK8HiNHjjQ6hFKu1ScoIiKuRS08ERHxCm7XwvMEx87k/fFOIiKVJCOrgFCjg6gEKngGCB04\n3+gQnMZqtRIWFmZ0GE6j/NybJ+dXntxCgdBQzy95KngGcOWRUOWVm5ur/NyY8nNfnpxbRVEfnoiI\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b3b8b7f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(x='count', y='index', data=pd.DataFrame(df_countries.count(), columns=['count']).reset_index())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"緯度経度が存在しないレコードが55件ある以外は、どの属性も有効な値が含まれていると言えます。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 対象とするデータセットを取得\n",
"\n",
"対象とする国コードの一覧ができましたので、 `country` 引数にリストとして与えることで API を呼び出します。また、データ期間は2014年の一年間に限定します。\n",
"\n",
"なお、ソースコード内にハードコードされた国コードに含まれないコードも存在するため、警告メッセージが表示されます。ハードコードされた一覧と最新の一覧の不一致により発生する事象ですので、処理はそのまま続けて問題ありません。"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.5/site-packages/pandas_datareader/wb.py:147: UserWarning: Non-standard ISO country codes: JG, XK\n",
" warnings.warn('Non-standard ISO country codes: %s' % tmp, UserWarning)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>NY.GDP.MKTP.CD</th>\n",
" </tr>\n",
" <tr>\n",
" <th>country</th>\n",
" <th>year</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Aruba</th>\n",
" <th>2014</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Andorra</th>\n",
" <th>2014</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <th>2014</th>\n",
" <td>2.003822e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Angola</th>\n",
" <th>2014</th>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Albania</th>\n",
" <th>2014</th>\n",
" <td>1.321151e+10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" NY.GDP.MKTP.CD\n",
"country year \n",
"Aruba 2014 NaN\n",
"Andorra 2014 NaN\n",
"Afghanistan 2014 2.003822e+10\n",
"Angola 2014 NaN\n",
"Albania 2014 1.321151e+10"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = wb.download(indicator='NY.GDP.MKTP.CD',\n",
" country=df_countries[(df_countries['region'] != 'Aggregates')]['iso2c'].tolist(),\n",
" start=2014, end=2014)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"NY.GDP.MKTP.CD 185\n",
"dtype: int64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.count()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>min</th>\n",
" <th>25%</th>\n",
" <th>50%</th>\n",
" <th>75%</th>\n",
" <th>max</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>NY.GDP.MKTP.CD</th>\n",
" <td>185</td>\n",
" <td>4.138522e+11</td>\n",
" <td>1.595941e+12</td>\n",
" <td>37859550.402549</td>\n",
" <td>7.962424e+09</td>\n",
" <td>3.299619e+10</td>\n",
" <td>2.178723e+11</td>\n",
" <td>1.741900e+13</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min \\\n",
"NY.GDP.MKTP.CD 185 4.138522e+11 1.595941e+12 37859550.402549 \n",
"\n",
" 25% 50% 75% max \n",
"NY.GDP.MKTP.CD 7.962424e+09 3.299619e+10 2.178723e+11 1.741900e+13 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe().T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"このままだと少し扱い難いため、データフレームを少し変形します。"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>country</th>\n",
" <th>gdp_2014</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Afghanistan</td>\n",
" <td>2.003822e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Albania</td>\n",
" <td>1.321151e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Algeria</td>\n",
" <td>2.135185e+11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>American Samoa</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Andorra</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" country gdp_2014\n",
"0 Afghanistan 2.003822e+10\n",
"1 Albania 1.321151e+10\n",
"2 Algeria 2.135185e+11\n",
"3 American Samoa NaN\n",
"4 Andorra NaN"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = df.unstack()['NY.GDP.MKTP.CD']\n",
"dd = pd.DataFrame(data={'gdp_2014': d['2014']}, index=d.index).reset_index()\n",
"dd.head()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>country</th>\n",
" <th>gdp_2014</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>209</th>\n",
" <td>Virgin Islands (U.S.)</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>210</th>\n",
" <td>West Bank and Gaza</td>\n",
" <td>1.273761e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>211</th>\n",
" <td>Yemen, Rep.</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>212</th>\n",
" <td>Zambia</td>\n",
" <td>2.706623e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>213</th>\n",
" <td>Zimbabwe</td>\n",
" <td>1.419691e+10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" country gdp_2014\n",
"209 Virgin Islands (U.S.) NaN\n",
"210 West Bank and Gaza 1.273761e+10\n",
"211 Yemen, Rep. NaN\n",
"212 Zambia 2.706623e+10\n",
"213 Zimbabwe 1.419691e+10"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dd.tail()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"データ件数を確認すると、全部で214件あり、gdp_2014 が NaN で無いものは185件あることが分かります。このデータについて、要約統計量を計算していきます。"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"country 214\n",
"gdp_2014 185\n",
"dtype: int64"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dd.count()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## モーメントから求められる要約統計量\n",
"\n",
"*pandas* の DataFrame には200近いメソッドが定義されていますが、この中にモーメントを計算する関数も含まれています。\n",
"\n",
"- 平均: `mean()`\n",
"- 分散: `std()`\n",
"- 歪度: `skew()`\n",
"- 尖度: `kurtosis()`"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>skew</th>\n",
" <th>kurtosis</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>gdp_2014</th>\n",
" <td>185</td>\n",
" <td>4.138522e+11</td>\n",
" <td>1.595941e+12</td>\n",
" <td>8.197562</td>\n",
" <td>78.277232</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std skew kurtosis\n",
"gdp_2014 185 4.138522e+11 1.595941e+12 8.197562 78.277232"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds = pd.DataFrame(index=('gdp_2014',))\n",
"ds['count'] = dd.count()['gdp_2014']\n",
"ds['mean'] = dd.mean()['gdp_2014']\n",
"ds['std'] = dd.std()['gdp_2014']\n",
"ds['skew'] = dd.skew()['gdp_2014']\n",
"ds['kurtosis'] = dd.kurtosis()['gdp_2014']\n",
"ds"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"年ごとに計算を繰り返すことで、分布の変化を追跡できるようになります。\n",
"`wb.download()` を呼び出すときの *start* パラメータの値を変えて、データ変換を再実行しながら試してみましょう。\n",
"\n",
"DataFrame のその他のメソッドは API ドキュメントを参照しましょう。\n",
"\n",
"- [pandas.DataFrame — pandas 0.18.1 documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 順序から求められる要約統計量\n",
"\n",
"*pandas* の DataFrame には `describe()` メソッドがあります。\n",
"先ほど計算したデータ件数、平均、分散に加えて、最小、最大、四分位数を計算します。四分位数の50%は中央値になります。"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>gdp_2014</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1.850000e+02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>4.138522e+11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.595941e+12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>3.785955e+07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>7.962424e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>3.299619e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2.178723e+11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>1.741900e+13</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" gdp_2014\n",
"count 1.850000e+02\n",
"mean 4.138522e+11\n",
"std 1.595941e+12\n",
"min 3.785955e+07\n",
"25% 7.962424e+09\n",
"50% 3.299619e+10\n",
"75% 2.178723e+11\n",
"max 1.741900e+13"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dd.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"最小と最大は6桁も異なりますので、ヒストグラムを描いたり、刈込平均を計算してみると、分布の様子をより理解出来るようになるでしょう。\n",
"\n",
"ここでは、上位と下位のそれぞれ10件を棒グラフで描画してみます。\n",
"描画には [Seaborn](https://web.stanford.edu/~mwaskom/software/seaborn/) を使います。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"上位10件を表示します。グラフにしてみると、上位2件(アメリカと中国)が突出していることが分かります。"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f00b154f940>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nzp1kZmaSm5tLWFhYvmMlJiYSGxsL3Lli2MvL676t2v379zNnzhxWrlxJzZo1863r2rUrGzZsAOD8\n+fPExcXRvn37+34XX19fvv/++3zzvA4dOtRUaAHOnDlDo0aNivhVpKxTy1akFPpzC/BeLUI/Pz8+\n+OAD3nvvPfLy8rh9+zbdunXD29ub9957j9GjR7N582aeeuqpfBcv3c9zzz3HZ599Znrv7+/PsWPH\n6NmzJ5UqVaJp06amruqOHTvmW9eqVSuuXLli2tfLy4vNmzczdepUXFxcTBc43cv48eNxcnJi2LBh\nGI1G7Ozs+PLLL6lUqRIDBgxg7NixdOnSBQcHB2bMmIGrqytwp9t53rx53Lx5k6ioKFasWMHKlSuL\nnKg8MzOTM2fOFNlCFtETpESk2E2ZMoX27dvTuXNnANM4q9FoZMKECdSoUYPhw4ff9xgxMTHMmzfP\n4pOqP4oNGzZw+fJlhg0bZusoUsKpZSsixW7EiBH85z//Mb0fM2YMSUlJ3Lp1Cx8fHwYOHGjDdMXH\nwcGBQYMG2TqGPAbUshWRx8rBgwdZtGiRqWv8bnfxBx98UOChEyIlhYqtiIiIhelqZBEREQtTsRUR\nEbEwFVsRERELU7EVERGxMBVbERERC/s/YDytQmlpI+kAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b14d7438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(x='gdp_2014', y='country',\n",
" data=dd.sort_values('gdp_2014', ascending=False).head(10).reset_index(),\n",
" palette=sns.color_palette('Greens_r', n_colors=15))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"同様にして下位10件を表示します。下位1件(ツバル)は少し上位よりも差が大きいことが分かります。"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f00b14d7a20>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b14d4048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.barplot(x='gdp_2014', y='country',\n",
" data=dd.sort_values('gdp_2014').head(10).reset_index(),\n",
" palette=sns.color_palette('Reds_r', n_colors=15))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 度数から求められる要約統計量\n",
"\n",
"上位、下位ともに分布が大きく散らばっていることが分かりましたので、ヒストグラムを描きながら度数の多い範囲を探してみます。\n",
"\n",
"とりあえずでヒストグラムを描画してみると、上位2件の値に引きづられて特徴の分からないグラフになってしまいます。"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f00b13b5710>]], dtype=object)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b152da58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dd.hist(bins=30)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"桁が大きく異なることが一因ですので、log10 をとってみます。"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 185.000000\n",
"mean 10.533801\n",
"std 1.048719\n",
"min 7.578175\n",
"25% 9.901045\n",
"50% 10.518464\n",
"75% 11.338202\n",
"max 13.241023\n",
"Name: gdp_2014, dtype: float64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lg10 = dd['gdp_2014'].map(lambda v: math.log10(v))\n",
"lg10.describe()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f00b138b4a8>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b12f7780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"lg10.hist(bins=30)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"今度は先ほど確認した特徴が見えてきました。\n",
"下位1件が左側、上位2件が右側に外れ値として存在しています。また、log10 が10から11の部分に多くの値が含まれています。もう少し正確に四分位数も確認すると、9.9から11.3に約半数が含まれていると言えます。\n",
"\n",
"散布図と組み合わせてみると、傾向をよりはっきりと確認できます。"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.JointGrid at 0x7f00b1291b70>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n2+3LZs+erdtuu02DBg2SJA0cOFCrV69WVFSUWTEBACYzfRdiVT/++KOOHDmibt26VVt+8uRJtWrV\nyn47JiZG2dnZvo4HAPAjflNgRUVFmjx5smbOnKnwcMdXXgcAoJJfzEIsLy/X5MmTlZCQoHvuuafW\n+ujoaGVlZdlvZ2VlKSYmxuljcikpAA2Fu5eRaojve85eu18U2MyZM3XttdfqP/7jPxyu79Onj9au\nXatBgwZp//79ioiIcOv4l7t/dH+QlpZGXi8ir3eR13801NfliOkFlpaWppSUFF133XVKTEyUzWbT\n1KlTlZmZKZvNppEjR6pnz55KTU1V3759FRYWpmeeecbs2AAAk5leYLGxsW6d1zV79mwfpAEAWIXf\nTOIAAKA+KDAAgCVRYAAAS6LAAACWRIEBACyJAgPg1M6dOzVgwAD1799fL730ktNtDxw4oK5du2rb\ntm32Za+++qqGDBmi+Ph4TZs2TaWlpd6OXEthYaHGjx+vhIQExcfHKzU11eF2a9euVb9+/dSlSxfl\n5eXV+3m2bNmiIUOGqEuXLjp06JB9+WeffaahQ4fq3nvv1bBhw/T5559f9GvBLygwwE+cP3/eK49b\nUVFxSfedO3euVq1apb///e/avHmzvv322zq3XbRoke688077suzsbK1evVobN25USkqKzp8/r/ff\nf/+i81ystWvXqlOnTnr33Xf12muvae3atQ6/1DE2Nlavvvqq2rRpc1HPc9111+nFF1/UzTffXG15\nZGSkVq5cqffee08LFizQ9OnTL+rxUZ3p54EBVnP8+HGNGzdOXbt21b/+9S916tRJCxcuVGhoqA4d\nOqQFCxaouLhYzZs314IFCxQVFaW33npL69evV3l5ua666io9++yzCg0N1YwZMxQSEqLDhw8rNjZW\nvXv31p/+9CeVlJQoPDxca9asUePGjfXnP/9Zu3btks1m0/jx4zVo0CDt2bNHS5cuVfPmzfX111/r\nhhtu0LPPPitJ6t27twYNGqTPPvtM48aNs3+TQ30dOHBAV199tdq2bStJGjx4sHbs2FHt644qrV69\nWv3799fBgwerLa+oqFBJSYkCAgJ09uxZRUdHS5LWrVtnv1hBVZs2bdKHH36oM2fO6OTJk4qPj9fE\niRMvKn8lm82moqIiSReuu9qkSRMFBdV+++vcubOk6t+NJUklJSWaO3euvvnmG5WXl2vixInq3bt3\nrft36NDB4f0rH1eSOnXqpHPnzqmsrEzBwcGX9LoudxQYcBGOHj2qZ555RjfddJNmzpypv/3tb3rg\ngQc0d+5cLV++XM2bN9f777+v559/XvPnz1e/fv3s36f0wgsv6O2339bo0aMlXRilVH6/3fjx4zVn\nzhxVVFTo+uuvV0hIiLZt26Z///vfSklJ0U8//aThw4frlltukXThiwk3b96sli1b6r777tOXX36p\n3/zmN5Kk5s2ba+PGjbWyp6SkaNWqVbLZbNWWX3XVVVqyZEm1ZdnZ2WrdurX9dkxMTK2CkqTTp09r\n+/btWr16tWbMmFFt+zFjxqhXr14KCwvTHXfcoR49ekiSRo0aVefv9+DBg9q8ebNCQ0M1fPhw3X33\n3eratWu1baZOnarvv/++1n0feughJSQkVFs2evRoPfroo7rzzjtVXFysxx57rM7ndmTFihW6/fbb\nNX/+fJ05c0bDhw9Xjx491KhRo3o9jnRhN2PXrl0pLw+gwICL0KZNG910002SpHvvvVdr1qzRnXfe\nqa+//lpjx46VYRiqqKiwjza++uorLVmyRAUFBSopKam2m23AgAH2n3/zm9/Yi/HKK69UTEyM0tLS\nNHjwYElSixYtdMstt+jgwYMKDw9Xt27d7M/RuXNnHT9+3F5gdY264uPjFR8f79Hfx+uvv64nnnjC\nfrtyBFJQUKAdO3bo448/VtOmTTV58mSlpKS4fP477rhDERERkqS+ffsqLS2tVoEtXrzY7Xy7du3S\n9ddfr9dff10ZGRm6//77NWrUKLe/+WLXrl366KOPtGrVKklSWVmZMjMz7SMud3399dd6/vnn9cor\nr9TrfnCMAgM8wGazyTAMderUSevWrau1fsaMGVq+fLmuu+46bdq0SXv27LGva9y4sf3n5ORk3X33\n3Vq7dq3uu+8+vfzyy7Ueq+ruqaqf4gMDA6sdRwsLC3OYtXIEVtPVV19dawQWExOjzMxM++3s7Gx7\nYVb13XffaerUqTIMQ6dPn9bOnTsVFBSksrIytWvXTs2aNZN0oYz27dvnssBqjg5r3pYujMCOHj1a\naztHI7CNGzcqOTlZ0oWRZnR0tL777jvdeOONbj2/JC1dulTXXHNNtWUzZszQ4cOHFRMTo5UrVzp9\nTVlZWZo4caIWLlyoK6+80um2cA8FBlyEzMxMpaenq3v37vr73/+u2NhYtW/fXqdPn9b+/ft10003\nqby8XN9//72uvfZaFRcXKyoqSmVlZUpJSanz64COHTumTp06KT4+Xrm5uTp69Kji4uK0fv16JSYm\nKi8vT3v37tUf/vCHOidTuFKfEdiNN96ojIwMHT9+XC1bttTmzZv1/PPP19puyZIl9qugz5gxQ3ff\nfbf69OmjAwcOKD09XefOnVNISIg+//xze2msXbtWkuy7Uqv69NNPVVBQoJCQEG3fvt3hBbzrMwJr\n06aN/vGPfyg2NlanTp3SiRMn1K5duzq3Nwyj2geFO++8U6tXr9asWbMkSYcPH1aXLl2cXli86v3P\nnDmjRx55RE888YR95I5LxyxE4CK0b9/e/hU/BQUFuu+++xQcHKwlS5boueeeU0JCgpKSkrRv3z5J\n0uTJkzVixAiNHj3a6W6n1157TfHx8ZoxY4aCg4N11113qW/fvvrVr36lhIQEPfTQQ5o+fbpatGhR\n675VRw2ORhAXIzAwULNmzdLYsWM1ZMgQDR482D6BY926dVq/fr3T+3fr1k39+/dXYmKi7r33XhmG\nod/97neSLozamjdvXuf9Jk6cqISEBA0YMKDW7sP6evTRR+0jvzFjxuj++++3jwqTk5OVk5Mj6cJE\nlJ49e+rkyZNKSEiwF9aECRNUVlZmL/+aI9VK27dvV8+ePZWenq7x48dr3LhxkqQ1a9YoIyNDf/nL\nX5SYmKikpCTl5uZe0muCJKOB2rt3r9kR6oW83uXJvD/++KMxZMgQjz2eI5fD7/eRRx4xysrKai3f\nuHGjMXfuXE/EqpPVfr/uaqivqy7sQgRgihUrVpgdARZHgQH11LZtW6WkpJgdo8FKSkpSUlKS2TFg\nARwDAwBYEgUGALAkCgwAYEkUGADAkigwAIAlUWAAAEuiwAAAlkSBAQAsiQIDAFgSBQYAsCQuJQUA\nNeQXlWrFhnRl5xYrJrKxHh3WXRHhIWbHQg0UGADUsGJDunalX/giz6+P5UmS/vDgzWZGggPsQgSA\nGrJzi53ehn+gwACghpjIxk5vwz+wCxEAanh0WHdJqnYMDP6HAgOAGiLCQzjmZQHsQgQAWBIFBgCw\nJAoMAGBJFBgAwJIoMACAJVFgAABLosAAAJZEgQEALIkCAwBYEgUGALAkCgwAYEkUGADAkigwAIAl\nUWAAAEuiwAAAlkSBAQAsiQIDAFgSBQYAsCQKDABgSRQYAMCSKDAAgCVRYAAAS/KLAps5c6Z69Oih\n+Ph4h+v37NmjuLg4JSUlKSkpScuWLfNxQgCAvwkyO4AkDR06VA888ICmT59e5zZxcXFasWKFD1MB\nAPyZX4zA4uLiFBERYXYMAICF+EWBuWPfvn1KSEhQcnKyvvnmG7PjAABMZjMMwzA7hCQdP35c48eP\nV0pKSq11RUVFCggIUFhYmFJTUzV//nxt3brV6eOlpaV5KyoA+FRsbKxb2zXE9z1nr90vjoG5Eh4e\nbv+5Z8+eeuqpp5SXl6dmzZo5vZ+7f3R/kJaWRl4vIq93kdd/NNTX5Yjf7EJ0NhA8deqU/ecDBw5I\nksvyAgA0bH4xAps2bZp2796tvLw89erVS5MmTVJZWZlsNptGjhyprVu36o033lBQUJAaNWqkxYsX\nmx0ZAGAyvyiwRYsWOV0/evRojR492kdpAABW4De7EAEAqA8KDABgSRQYAMCSKDAAgCVRYAAAS6LA\nAACWRIEBACyJAgMAWBIFBgCwJAoMAGBJFBgAwJIoMACAJVFgAABLosAAAJZEgQEALIkCAwBYEgUG\nALAkCgwAYEkUGADAkigwAIAlUWAAAEuiwAAAlkSBAQAsiQIDAFgSBQYAsCQKDABgSRQYAMCSKDAA\ngCVRYAAAS6LAAACWRIEBACyJAgMAWBIFBgCwJAoMAGBJFBgAwJIoMACAJVFgAABLosAAAJZEgQEA\nLIkCAwBYEgUGALAkCgwAYEkUGADAkigwAIAlUWAAAEuiwAAAlkSBAQAsiQIDAFgSBQYAsCQKDABg\nSRQYAMCSKDAAgCUFmR0AAHwlv6hUKzak67tjOepw6As9Oqy7IsJDzI6Fi+QXI7CZM2eqR48eio+P\nr3ObefPmqV+/fkpISNDhw4d9mA5AQ7FiQ7p2pWcqM7dMu9IztXxDutmRcAn8osCGDh2qVatW1bk+\nNTVVGRkZ2rZtm55++mnNmTPHh+kANBTZucVOb8Na/KLA4uLiFBERUef6HTt2KDExUZLUvXt3nTlz\nRqdOnfJVPAANRExkY6e3YS2WOAZ28uRJtWrVyn47JiZG2dnZioqKMjEVAKt5dFh3SbpwDKxdS/tt\nWJMlCgwAPCEiPER/ePBmpaWlKTY21uw4uESWKLDo6GhlZWXZb2dlZSkmJsbl/dLS0rwZy+PI613k\n9S7yek99ytZKr8sdzl673xSYYRh1ruvTp4/Wrl2rQYMGaf/+/YqIiHBr96GVPmFZ7RMheb2LvN5l\ntbz10VBflyN+UWDTpk3T7t27lZeXp169emnSpEkqKyuTzWbTyJEj1bNnT6Wmpqpv374KCwvTM888\nY3ZkAIDJ/KLAFi1a5HKb2bNn+yAJAMAq/GIaPQAA9UWBAQAsiQIDAFjSRRXYI4884ukcAADUi8tJ\nHFOmTKm1bM+ePfblS5Ys8XwqAABccFlge/fuVc+ePXXzzTdLunC+1u7du9WrVy9vZwMAoE4udyGm\npKSoqKhIhw4d0oABAzR06FA1btxYSUlJSkpK8kVGAABqcVlgkZGRWrJkibp166bf//73+vzzz2Wz\n2XyRDQCAOrl9IvO9996rW2+9VbNnz1ZhYaE3MwEA4FK9rsQRExOjlStXeisLAABuu6TzwDZs2OCp\nHAAA1MslFdjSpUs9lQMAgHq5qPPApAvT6fPz8z0eCAAAd7gssNTUVM2cOVPBwcHVlleeDwYAgBlc\nFliXLl3UuXNndevWrdY6rsIBADCLywKbM2eOIiMjHa7729/+5vFAAAC4w2WBde7cuc51bdu29WgY\nAADc5dZ5YHv37tUHH3ygEydOSJJat26tgQMHKi4uzqvhAACoi8sCW7ZsmbZs2aLExER7YZ04cUJP\nP/20+vfvr8cee8zrIQEAqMllgb3zzjtKSUlRaGhoteX333+/4uPjKTAAgClcnshsGIbDi/fabDYZ\nhuGVUAAAuOJyBJaYmKgRI0YoMTFRbdq0kSRlZmbqnXfeUWJiotcDAgDgiMsCe+yxx3TLLbfogw8+\nsJ+43KZNG/3xj3/ULbfc4vWAAAA44tYsxJtvvtn+jcwAAPgDty7mm5mZqS+//FKlpaXVln/66ade\nCQUAgCsuC+y9997T0KFDNWfOHPXv31/79u2zr3vuuee8Gg4AgLq4LLBVq1bp3XffVUpKihYsWKD/\n+q//0q5duySJWYgAANO4NY0+JiZGknTrrbfqr3/9q2bPnq2PP/7Y4fR6AAB8wa1JHAUFBYqIiJAk\nXXvttXrllVc0btw4vg8MAGAalyOwBx54QF999VW1Zddcc43+93//Vz169PBaMAAAnHFZYCNGjHA4\nhb5du3bVvg9s2bJlnk0GAIATbk2jd8eHH37oqYcCAMAljxUYMxIBAL7ksQJjRiIAwJc8VmAAAPgS\nuxABAJbk1nlglXJzc5Weni5J6t69uyIjI+3rXnnlFc8mAwDACbdHYNu2bdPAgQO1Zs0arV69WoMH\nD9b27dvt66uWGQAA3ub2CGzx4sVat26d2rdvL0n6/vvv9eijj+qee+7xWjgAAOri9ggsNDTUXl7S\nhatxNGrUyCuhAABwxe0C69Onj5YvX66cnBydPHlSK1asUJ8+fXT27FmVlJR4MyMAALW4vQvxL3/5\niyRVu3yUJL344ouy2Ww6fPiwZ5MBAOCE2wV25MgRb+YAAKBeXBaYq92DYWFhHgsDAIC7XBbYr3/9\na6eXiWLXIQDADC4LrHLX4bJlyxQSEqKRI0fKMAy99dZbKisr83pAAAAccXsW4ocffqhx48apadOm\nioiI0MMPP6xt27Z5MxsAAHVyu8DOnj2rH374wX47IyOD6fMAANO4PQtx6tSp+t3vfqcbbrhBhmHo\n8OHDevrpp72ZDQCAOrldYL/97W+1adMmffXVV5KkLl26qFWrVl4LBgCAM24XWOVsxMqvTbHZbAoK\nClK3bt00d+5cdejQwWshAQCoqV67EENDQzV8+HAZhqFNmzbp9OnTateunebMmaPVq1d7MycAANW4\nPYlj69ateuihh9SkSRM1bdpUDz74oFJTUzV06FDl5eV5MyMAALW4XWAlJSU6duyY/faxY8dUXFws\nSQoMDPR8MgAAnHB7F+Ljjz+u4cOH64YbbpAkHTp0SE899ZSKioo0YMCASwqxc+dOzZ8/X4ZhaNiw\nYUpOTq62fs+ePZowYYLatWsnSerbt68mTJhwSc8JALA2twusf//+iouLU3p6uiSpe/fuatGihSRp\n/PjxFx2goqJCc+fO1auvvqro6GgNHz5cffr0UceOHattFxcXpxUrVlz08wAAGha3C0ySWrRood69\ne3s0wIEDB3T11Verbdu2kqTBgwdrx44dtQoMAICq3D4G5i3Z2dlq3bq1/XZMTIxOnjxZa7t9+/Yp\nISFBycnJ+uabb3wZEQDgh+o1AjNL165d9cknnygsLEypqal67LHHtHXrVrNjAQBMZDMqz0w2yf79\n+7V06VKtWrVKkvTSSy9JUq2JHFX17t1bGzduVLNmzercJi0tzbNBAcAksbGxbm3XEN/3nL1200dg\nN954ozIyMnT8+HG1bNlSmzdv1vPPP19tm1OnTikqKkrShWNmkpyWVyV3/+j+IC0tjbxeRF7vIq//\naKivyxHTCywwMFCzZs3S2LFjZRiGhg8fro4dO2rdunWy2WwaOXKktm7dqjfeeENBQUFq1KiRFi9e\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b1291550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"d = dd['gdp_2014']\n",
"a = pd.DataFrame({'gdp_2014': d, 'log10': d.map(lambda v: math.log10(v))})\n",
"sns.jointplot(x='log10', y='gdp_2014', data=a, marginal_kws=dict(bins=30))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"外れ値を除外してみると、もう少しグラフの値が読みやすくなり、log10 が 12 付近での非連続性が分かります。"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.JointGrid at 0x7f00b1145128>"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n6pZbbtHNN99sd0kAAJsYMfnhf//3f9W6dWulp6dr0qRJ6ty5s/r06WN3WQAAGxgRTK1bt5YkxcbG\n6oYbbtDevXurDSaWJALgD2qzHJG//e5V13bbgyknJ0fFxcWKjIxUdna2tm7dqmnTptX4vNp8oSZL\nSUmhLQbyp7ZI/tUef2pLbQVKu20PptOnT2vatGlyOBwqKipSQkKCrr76arvLAgDYxPZgat++vd5+\n+227ywAAGMKIC2wBAChFMAEAjEIwAQCMQjABAIxCMAEAjEIwAQFsy5YtGjp0qIYMGaK//e1vVR63\nfft2JSYmasSIEZowYYIkKT8/X+PGjVNiYqISEhL07LPPNlbZZXz99dcaP368LrvsMr300ktVHvfg\ngw9q1KhRGjVqlGbMmKGcnJxavc/ChQs1bNgwjRo1StOnT1dWVpYk6ezZs5o4caJ69+6t+fPn16st\nKGH7dHEgEBQVFSkoKKjBX7e4uFhOZ93+/7K4uFjz5s3Tyy+/rNatW2vs2LEaPHiwunTpUua4c+fO\n6dFHH9WLL76ouLg4paenS5JCQ0O1cuVKhYeHq6ioSLfeeqsGDhzY6Pf3adasmf7whz9ow4YN1R43\nZ84cRUZGSpKeeOIJrVq1Sr/5zW88fp+rr75av/vd7+R0OvXUU0/p+eef18yZMxUWFqb77rtPhw4d\n0qFDh+rVFpQgmIDzHD9+XHfeeafatGmjEydOqFu3blq4cKHCwsK0b98+PfHEE8rOzlbz5s31xBNP\nqGXLlnrjjTf0+uuvu29R/eSTTyosLEyzZ89WaGio9u/fr/j4eA0aNEiPPfaYHA6HHA6HVq1apYiI\nCP3pT3/S1q1b5XA4NGXKFA0fPlw7duzQkiVL1Lx5cx06dEiXXnqpnnzySUklq/EPHz5cH3/8se68\n804NHz68Tm3ds2ePOnbsqHbt2kmSbrrpJm3cuLFCMCUnJ+vGG29UXFycpJKlw0qFh4dLKjl7Ov/O\nqa+99pocDoduueWWMq+1du1affjhhzp37pxOnjyphIQEj1Z6qU5sbKxiY2O1adOmao8rDSXLspSb\nmyuHwyGpZPWZefPm6fDhwyosLNS0adM0aNCgCs/v37+/++/LL79c77//vqSSz+CKK67Qt99+W692\n4EcEE1DOkSNH9Ktf/Urjx4/XnDlz9Oqrr2rChAmaN2+eli5dqubNm+vdd9/VokWLtGDBAt14440a\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b11455c0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"d = dd[(lg10 > 8) & (lg10 < 13)]['gdp_2014']\n",
"a = pd.DataFrame({'gdp_2014': d, 'log10': d.map(lambda v: math.log10(v))})\n",
"sns.jointplot(x='log10', y='gdp_2014', data=a, marginal_kws=dict(bins=30))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"また、中央値である10.5を中心として±1.5に範囲を限定すると、9.5付近と11.0付近の値が少ないことが分かります。"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.JointGrid at 0x7f00b0f44208>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f00b0f44cf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"d = dd[(lg10 >= 9) & (lg10 <= 12)]['gdp_2014']\n",
"a = pd.DataFrame({'gdp_2014': d, 'log10': d.map(lambda v: math.log10(v))})\n",
"sns.jointplot(x='log10', y='gdp_2014', data=a, marginal_kws=dict(bins=30))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"さて、最初に確認した Country Query のレスポンスには *incomeLevel* という属性が含まれていました。これを改めて集計してみると、以下の結果を得られます。Aggregates は集約結果なので別扱いとして、2種類の上位層、1種類の下位層、そして2種類の中間層になっています。ここまでで確認した度数密度と合わせて考えると、具体的な数値をイメージしやすくなったと思います。"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>incomeLevel</th>\n",
" <th>name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Aggregates</td>\n",
" <td>49</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>High income: OECD</td>\n",
" <td>32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>High income: nonOECD</td>\n",
" <td>48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Low income</td>\n",
" <td>31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Lower middle income</td>\n",
" <td>51</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Upper middle income</td>\n",
" <td>53</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" incomeLevel name\n",
"0 Aggregates 49\n",
"1 High income: OECD 32\n",
"2 High income: nonOECD 48\n",
"3 Low income 31\n",
"4 Lower middle income 51\n",
"5 Upper middle income 53"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_countries.groupby('incomeLevel')['name',].count().reset_index()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## まとめ\n",
"\n",
"pandas を使って、モーメント、順序、度数に関する要約統計量を計算しました。\n",
"各国のGDPのように、正規分布などの特定の分布を想定することが難しい場合でも、個別の値を見たり対数を計算することで特徴を数値で表現出来るようになりました。その中では、ヒストグラム (histogram) と散布図 (scatter plot) を使い、グラフでデータ分布を確認することも有用です。\n",
"\n",
"実際の利用シーンについては、PayPal の人が書いた記事(日本語訳がありがたい)が分かりやすいと思います。基本的な数値計算はライブラリがカバーしてくれますので、その数値を読んで意味を理解できるようになると、データ分析の内容にも深みが出てくると考えられます。\n",
"\n",
"- [ソフトウェアのための統計学 – 前編 | POSTD](http://postd.cc/statistics-for-software/)\n",
"- [ソフトウェアのための統計学 – 後編 | POSTD](http://postd.cc/statistics-for-software-2/)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
},
"widgets": {
"state": {},
"version": "1.1.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment