From a8ce91f7901f9f91dab1fdaa09903208de466535 Mon Sep 17 00:00:00 2001
From: zhouwei713 <736552883@qq.com>
Date: Wed, 13 Nov 2019 15:07:23 +0800
Subject: [PATCH] add gdp regression code
---
.idea/workspace.xml | 20 +-
.../GDP_analyse-checkpoint.ipynb | 7133 +++++++++++++++++
.../Untitled-checkpoint.ipynb | 6 +
...PI_NY.GDP.MKTP.CD_DS2_zh_csv_v2_424460.zip | Bin 0 -> 115590 bytes
GDP_analyse/Country_data.csv | 267 +
GDP_analyse/GDP_analyse.ipynb | 7133 +++++++++++++++++
GDP_analyse/GDP_data.csv | 265 +
...PI_NY.GDP.MKTP.CD_DS2_zh_csv_v2_424460.csv | 2 +
GDP_analyse/Untitled.ipynb | 6 +
GDP_analyse/test.txt | 3 +
GDP_regression/Country_data.csv | 267 +
GDP_regression/GDP_data.csv | 265 +
GDP_regression/main.py | 120 +
football/yingchao/analyse.py | 6 +-
14 files changed, 15479 insertions(+), 14 deletions(-)
create mode 100644 GDP_analyse/.ipynb_checkpoints/GDP_analyse-checkpoint.ipynb
create mode 100644 GDP_analyse/.ipynb_checkpoints/Untitled-checkpoint.ipynb
create mode 100644 GDP_analyse/API_NY.GDP.MKTP.CD_DS2_zh_csv_v2_424460.zip
create mode 100644 GDP_analyse/Country_data.csv
create mode 100644 GDP_analyse/GDP_analyse.ipynb
create mode 100644 GDP_analyse/GDP_data.csv
create mode 100644 GDP_analyse/Metadata_Indicator_API_NY.GDP.MKTP.CD_DS2_zh_csv_v2_424460.csv
create mode 100644 GDP_analyse/Untitled.ipynb
create mode 100644 GDP_analyse/test.txt
create mode 100644 GDP_regression/Country_data.csv
create mode 100644 GDP_regression/GDP_data.csv
create mode 100644 GDP_regression/main.py
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 6d59da9..48cc8db 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,10 +3,7 @@
-
-
-
-
+
@@ -73,19 +70,19 @@
-
+
-
-
-
-
+
-
+
+
+
+
@@ -275,7 +272,8 @@
-
+
+
diff --git a/GDP_analyse/.ipynb_checkpoints/GDP_analyse-checkpoint.ipynb b/GDP_analyse/.ipynb_checkpoints/GDP_analyse-checkpoint.ipynb
new file mode 100644
index 0000000..7b87c81
--- /dev/null
+++ b/GDP_analyse/.ipynb_checkpoints/GDP_analyse-checkpoint.ipynb
@@ -0,0 +1,7133 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pyecharts import options as opts\n",
+ "from pyecharts.charts import Pie, Bar"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "gdp = pd.read_csv('GDP_data.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "country = pd.read_csv('Country_data.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "country_data = country.dropna(subset=['Income_Group'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 阿鲁巴 | \n",
+ " ABW | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 阿富汗 | \n",
+ " AFG | \n",
+ " 南亚 | \n",
+ " 低收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 安哥拉 | \n",
+ " AGO | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中低等收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 阿尔巴尼亚 | \n",
+ " ALB | \n",
+ " 欧洲与中亚地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 安道尔共和国 | \n",
+ " AND | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 259 | \n",
+ " 科索沃 | \n",
+ " XKX | \n",
+ " 欧洲与中亚地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 260 | \n",
+ " 也门共和国 | \n",
+ " YEM | \n",
+ " 中东与北非地区(不包括高收入) | \n",
+ " 低收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 261 | \n",
+ " 南非 | \n",
+ " ZAF | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 262 | \n",
+ " 赞比亚 | \n",
+ " ZMB | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中低等收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 263 | \n",
+ " 津巴布韦 | \n",
+ " ZWE | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中低等收入国家 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
217 rows × 5 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4\n",
+ "0 阿鲁巴 ABW NaN 高收入国家 NaN\n",
+ "1 阿富汗 AFG 南亚 低收入国家 NaN\n",
+ "2 安哥拉 AGO 撒哈拉以南非洲地区(不包括高收入) 中低等收入国家 NaN\n",
+ "3 阿尔巴尼亚 ALB 欧洲与中亚地区(不包括高收入) 中高等收入国家 NaN\n",
+ "4 安道尔共和国 AND NaN 高收入国家 NaN\n",
+ ".. ... ... ... ... ...\n",
+ "259 科索沃 XKX 欧洲与中亚地区(不包括高收入) 中高等收入国家 NaN\n",
+ "260 也门共和国 YEM 中东与北非地区(不包括高收入) 低收入国家 NaN\n",
+ "261 南非 ZAF 撒哈拉以南非洲地区(不包括高收入) 中高等收入国家 NaN\n",
+ "262 赞比亚 ZMB 撒哈拉以南非洲地区(不包括高收入) 中低等收入国家 NaN\n",
+ "263 津巴布韦 ZWE 撒哈拉以南非洲地区(不包括高收入) 中低等收入国家 NaN\n",
+ "\n",
+ "[217 rows x 5 columns]"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "country_data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 73,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "rank_cuntry = country_data.groupby('Income_Group').size()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[47, 60, 31, 79]"
+ ]
+ },
+ "execution_count": 72,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "country_data.groupby('Income_Group').size().values.tolist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 81,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 各个收入等级分布\n",
+ "pie = Pie()\n",
+ "pie.add(\"\", [list(z) for z in zip(rank_cuntry.index.tolist(), rank_cuntry.values.tolist())],\n",
+ " radius=[\"30%\", \"75%\"], center=[\"45%\", \"50%\"], rosetype=\"radius\",\n",
+ " )\n",
+ "pie.set_global_opts(title_opts=opts.TitleOpts(title=\"各个收入等级分布\"))\n",
+ "pie.set_series_opts(label_opts=opts.LabelOpts(formatter=\"{b}, {d}%\"))\n",
+ "pie.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 89,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "high = country_data[country_data['Income_Group'] == '高收入国家']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 94,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "# 高收入国家2018年的GDP\n",
+ "high_gdp = pd.merge(high, gdp, how='inner')\n",
+ "high_gdp['2018'] = high_gdp['2018'].apply(lambda x: x/1000000000000)\n",
+ "high_gdp_top10 = high_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:10]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 101,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 101,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(high_gdp_top10['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", high_gdp_top10['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"高收入国家GDP Top10\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 113,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 113,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "high_gdp_top20 = high_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:20]\n",
+ "\n",
+ "bar = Bar()\n",
+ "bar.add_xaxis(high_gdp_top20['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", high_gdp_top20['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"高收入国家GDP Top20\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 119,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 中高等收入国家\n",
+ "mid_high = country_data[country_data['Income_Group'] == '中高等收入国家']\n",
+ "mid_high_gdp = pd.merge(mid_high, gdp, how='inner')\n",
+ "mid_high_gdp['2018'] = mid_high_gdp['2018'].apply(lambda x: x/1000000000000)\n",
+ "mid_high_gdp_top10 = mid_high_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:10]\n",
+ "mid_high_gdp_top20 = mid_high_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:20]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 117,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 117,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(mid_high_gdp_top10['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", mid_high_gdp_top10['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"中高等收入国家GDP Top10\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 120,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 120,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(mid_high_gdp_top20['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", mid_high_gdp_top20['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"中高等收入国家GDP Top20\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 121,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 中低等收入国家\n",
+ "mid_low = country_data[country_data['Income_Group'] == '中低等收入国家']\n",
+ "mid_low_gdp = pd.merge(mid_low, gdp, how='inner')\n",
+ "mid_low_gdp['2018'] = mid_low_gdp['2018'].apply(lambda x: x/1000000000000)\n",
+ "mid_low_gdp_top10 = mid_low_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:10]\n",
+ "mid_low_gdp_top20 = mid_low_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:20]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 122,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 122,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(mid_low_gdp_top10['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", mid_low_gdp_top10['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"中低等收入国家GDP Top10\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 123,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 123,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(mid_low_gdp_top20['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", mid_low_gdp_top20['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"中低等收入国家GDP Top20\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 126,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 低等收入国家\n",
+ "low = country_data[country_data['Income_Group'] == '低收入国家']\n",
+ "low_gdp = pd.merge(low, gdp, how='inner')\n",
+ "low_gdp['2018'] = low_gdp['2018'].apply(lambda x: x/1000000000000)\n",
+ "low_gdp_top10 = low_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:10]\n",
+ "low_gdp_top20 = low_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:20]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 127,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 127,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(low_gdp_top10['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", low_gdp_top10['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"低等收入国家GDP Top10\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 129,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 129,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bar = Bar()\n",
+ "bar.add_xaxis(low_gdp_top20['Country Name'].values.tolist())\n",
+ "bar.add_yaxis(\"\", low_gdp_top20['2018'].values.tolist())\n",
+ "bar.reversal_axis()\n",
+ "bar.set_series_opts(label_opts=opts.LabelOpts(position=\"right\"))\n",
+ "bar.set_global_opts(title_opts=opts.TitleOpts(title=\"低等收入国家GDP Top20\", subtitle=\"\"),\n",
+ " xaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " ),)\n",
+ "bar.render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 91,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 阿鲁巴 | \n",
+ " ABW | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 2.549721e+09 | \n",
+ " 2.534637e+09 | \n",
+ " 2.581564e+09 | \n",
+ " 2.649721e+09 | \n",
+ " 2.691620e+09 | \n",
+ " 2.646927e+09 | \n",
+ " 2.700559e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 安道尔共和国 | \n",
+ " AND | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.442063e+09 | \n",
+ " 3.164615e+09 | \n",
+ " 3.281585e+09 | \n",
+ " 3.350736e+09 | \n",
+ " 2.811489e+09 | \n",
+ " 2.877312e+09 | \n",
+ " 3.013387e+09 | \n",
+ " 3.236544e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 阿拉伯联合酋长国 | \n",
+ " ARE | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.506660e+11 | \n",
+ " 3.745906e+11 | \n",
+ " 3.901076e+11 | \n",
+ " 4.031371e+11 | \n",
+ " 3.581351e+11 | \n",
+ " 3.570451e+11 | \n",
+ " 3.825751e+11 | \n",
+ " 4.141789e+11 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 安提瓜和巴布达 | \n",
+ " ATG | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 1.142043e+09 | \n",
+ " 1.211412e+09 | \n",
+ " 1.192920e+09 | \n",
+ " 1.275577e+09 | \n",
+ " 1.359195e+09 | \n",
+ " 1.464630e+09 | \n",
+ " 1.510085e+09 | \n",
+ " 1.623804e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 澳大利亚 | \n",
+ " AUS | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 1.857767e+10 | \n",
+ " 1.965394e+10 | \n",
+ " 1.989249e+10 | \n",
+ " ... | \n",
+ " 1.396650e+12 | \n",
+ " 1.546152e+12 | \n",
+ " 1.576184e+12 | \n",
+ " 1.467484e+12 | \n",
+ " 1.351520e+12 | \n",
+ " 1.210028e+12 | \n",
+ " 1.330803e+12 | \n",
+ " 1.432195e+12 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 74 | \n",
+ " 特立尼达和多巴哥 | \n",
+ " TTO | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 5.356701e+08 | \n",
+ " 5.849612e+08 | \n",
+ " 6.193192e+08 | \n",
+ " ... | \n",
+ " 2.543301e+10 | \n",
+ " 2.576933e+10 | \n",
+ " 2.711026e+10 | \n",
+ " 2.747797e+10 | \n",
+ " 2.512152e+10 | \n",
+ " 2.174639e+10 | \n",
+ " 2.225046e+10 | \n",
+ " 2.341035e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 75 | \n",
+ " 乌拉圭 | \n",
+ " URY | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 1.242289e+09 | \n",
+ " 1.547389e+09 | \n",
+ " 1.710004e+09 | \n",
+ " ... | \n",
+ " 4.796244e+10 | \n",
+ " 5.126439e+10 | \n",
+ " 5.753123e+10 | \n",
+ " 5.723601e+10 | \n",
+ " 5.327430e+10 | \n",
+ " 5.268761e+10 | \n",
+ " 5.648899e+10 | \n",
+ " 5.959689e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 76 | \n",
+ " 美国 | \n",
+ " USA | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 5.433000e+11 | \n",
+ " 5.633000e+11 | \n",
+ " 6.051000e+11 | \n",
+ " ... | \n",
+ " 1.554258e+13 | \n",
+ " 1.619701e+13 | \n",
+ " 1.678485e+13 | \n",
+ " 1.752175e+13 | \n",
+ " 1.821930e+13 | \n",
+ " 1.870719e+13 | \n",
+ " 1.948539e+13 | \n",
+ " 2.049410e+13 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 77 | \n",
+ " 英屬維爾京群島 | \n",
+ " VGB | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 78 | \n",
+ " 美属维京群岛 | \n",
+ " VIR | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 4.239000e+09 | \n",
+ " 4.095000e+09 | \n",
+ " 3.762000e+09 | \n",
+ " 3.622000e+09 | \n",
+ " 3.748000e+09 | \n",
+ " 3.863000e+09 | \n",
+ " 3.855000e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
79 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 Indicator Name \\\n",
+ "0 阿鲁巴 ABW NaN 高收入国家 NaN GDP(现价美元) \n",
+ "1 安道尔共和国 AND NaN 高收入国家 NaN GDP(现价美元) \n",
+ "2 阿拉伯联合酋长国 ARE NaN 高收入国家 NaN GDP(现价美元) \n",
+ "3 安提瓜和巴布达 ATG NaN 高收入国家 NaN GDP(现价美元) \n",
+ "4 澳大利亚 AUS NaN 高收入国家 NaN GDP(现价美元) \n",
+ ".. ... ... ... ... ... ... \n",
+ "74 特立尼达和多巴哥 TTO NaN 高收入国家 NaN GDP(现价美元) \n",
+ "75 乌拉圭 URY NaN 高收入国家 NaN GDP(现价美元) \n",
+ "76 美国 USA NaN 高收入国家 NaN GDP(现价美元) \n",
+ "77 英屬維爾京群島 VGB NaN 高收入国家 NaN GDP(现价美元) \n",
+ "78 美属维京群岛 VIR NaN 高收入国家 NaN GDP(现价美元) \n",
+ "\n",
+ " Indicator Code 1960 1961 1962 ... \\\n",
+ "0 NY.GDP.MKTP.CD NaN NaN NaN ... \n",
+ "1 NY.GDP.MKTP.CD NaN NaN NaN ... \n",
+ "2 NY.GDP.MKTP.CD NaN NaN NaN ... \n",
+ "3 NY.GDP.MKTP.CD NaN NaN NaN ... \n",
+ "4 NY.GDP.MKTP.CD 1.857767e+10 1.965394e+10 1.989249e+10 ... \n",
+ ".. ... ... ... ... ... \n",
+ "74 NY.GDP.MKTP.CD 5.356701e+08 5.849612e+08 6.193192e+08 ... \n",
+ "75 NY.GDP.MKTP.CD 1.242289e+09 1.547389e+09 1.710004e+09 ... \n",
+ "76 NY.GDP.MKTP.CD 5.433000e+11 5.633000e+11 6.051000e+11 ... \n",
+ "77 NY.GDP.MKTP.CD NaN NaN NaN ... \n",
+ "78 NY.GDP.MKTP.CD NaN NaN NaN ... \n",
+ "\n",
+ " 2011 2012 2013 2014 2015 \\\n",
+ "0 2.549721e+09 2.534637e+09 2.581564e+09 2.649721e+09 2.691620e+09 \n",
+ "1 3.442063e+09 3.164615e+09 3.281585e+09 3.350736e+09 2.811489e+09 \n",
+ "2 3.506660e+11 3.745906e+11 3.901076e+11 4.031371e+11 3.581351e+11 \n",
+ "3 1.142043e+09 1.211412e+09 1.192920e+09 1.275577e+09 1.359195e+09 \n",
+ "4 1.396650e+12 1.546152e+12 1.576184e+12 1.467484e+12 1.351520e+12 \n",
+ ".. ... ... ... ... ... \n",
+ "74 2.543301e+10 2.576933e+10 2.711026e+10 2.747797e+10 2.512152e+10 \n",
+ "75 4.796244e+10 5.126439e+10 5.753123e+10 5.723601e+10 5.327430e+10 \n",
+ "76 1.554258e+13 1.619701e+13 1.678485e+13 1.752175e+13 1.821930e+13 \n",
+ "77 NaN NaN NaN NaN NaN \n",
+ "78 4.239000e+09 4.095000e+09 3.762000e+09 3.622000e+09 3.748000e+09 \n",
+ "\n",
+ " 2016 2017 2018 2019 Unnamed: 64 \n",
+ "0 2.646927e+09 2.700559e+09 NaN NaN NaN \n",
+ "1 2.877312e+09 3.013387e+09 3.236544e+09 NaN NaN \n",
+ "2 3.570451e+11 3.825751e+11 4.141789e+11 NaN NaN \n",
+ "3 1.464630e+09 1.510085e+09 1.623804e+09 NaN NaN \n",
+ "4 1.210028e+12 1.330803e+12 1.432195e+12 NaN NaN \n",
+ ".. ... ... ... ... ... \n",
+ "74 2.174639e+10 2.225046e+10 2.341035e+10 NaN NaN \n",
+ "75 5.268761e+10 5.648899e+10 5.959689e+10 NaN NaN \n",
+ "76 1.870719e+13 1.948539e+13 2.049410e+13 NaN NaN \n",
+ "77 NaN NaN NaN NaN NaN \n",
+ "78 3.863000e+09 3.855000e+09 NaN NaN NaN \n",
+ "\n",
+ "[79 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 91,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "high_gdp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " 1963 | \n",
+ " 1964 | \n",
+ " 1965 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 阿鲁巴 | \n",
+ " ABW | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 2.549721e+09 | \n",
+ " 2.534637e+09 | \n",
+ " 2.581564e+09 | \n",
+ " 2.649721e+09 | \n",
+ " 2.691620e+09 | \n",
+ " 2.646927e+09 | \n",
+ " 2.700559e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 阿富汗 | \n",
+ " AFG | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 5.377778e+08 | \n",
+ " 5.488889e+08 | \n",
+ " 5.466667e+08 | \n",
+ " 7.511112e+08 | \n",
+ " 8.000000e+08 | \n",
+ " 1.006667e+09 | \n",
+ " ... | \n",
+ " 1.780428e+10 | \n",
+ " 2.000162e+10 | \n",
+ " 2.056105e+10 | \n",
+ " 2.048487e+10 | \n",
+ " 1.990711e+10 | \n",
+ " 1.936264e+10 | \n",
+ " 2.019176e+10 | \n",
+ " 1.936297e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 安哥拉 | \n",
+ " AGO | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 1.117897e+11 | \n",
+ " 1.280529e+11 | \n",
+ " 1.367099e+11 | \n",
+ " 1.457122e+11 | \n",
+ " 1.161936e+11 | \n",
+ " 1.011239e+11 | \n",
+ " 1.221238e+11 | \n",
+ " 1.057510e+11 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 阿尔巴尼亚 | \n",
+ " ALB | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 1.289087e+10 | \n",
+ " 1.231978e+10 | \n",
+ " 1.277628e+10 | \n",
+ " 1.322825e+10 | \n",
+ " 1.138693e+10 | \n",
+ " 1.186135e+10 | \n",
+ " 1.302506e+10 | \n",
+ " 1.505888e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 安道尔共和国 | \n",
+ " AND | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.442063e+09 | \n",
+ " 3.164615e+09 | \n",
+ " 3.281585e+09 | \n",
+ " 3.350736e+09 | \n",
+ " 2.811489e+09 | \n",
+ " 2.877312e+09 | \n",
+ " 3.013387e+09 | \n",
+ " 3.236544e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 259 | \n",
+ " 科索沃 | \n",
+ " XKX | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 6.691827e+09 | \n",
+ " 6.499936e+09 | \n",
+ " 7.071960e+09 | \n",
+ " 7.386891e+09 | \n",
+ " 6.440612e+09 | \n",
+ " 6.714712e+09 | \n",
+ " 7.227765e+09 | \n",
+ " 7.900269e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 260 | \n",
+ " 也门共和国 | \n",
+ " YEM | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.272642e+10 | \n",
+ " 3.540134e+10 | \n",
+ " 4.041523e+10 | \n",
+ " 4.322859e+10 | \n",
+ " 4.262833e+10 | \n",
+ " 3.096824e+10 | \n",
+ " 2.681870e+10 | \n",
+ " 2.691440e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 261 | \n",
+ " 南非 | \n",
+ " ZAF | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 7.575397e+09 | \n",
+ " 7.972997e+09 | \n",
+ " 8.497997e+09 | \n",
+ " 9.423396e+09 | \n",
+ " 1.037400e+10 | \n",
+ " 1.133440e+10 | \n",
+ " ... | \n",
+ " 4.164170e+11 | \n",
+ " 3.963294e+11 | \n",
+ " 3.666449e+11 | \n",
+ " 3.506376e+11 | \n",
+ " 3.174156e+11 | \n",
+ " 2.963409e+11 | \n",
+ " 3.492681e+11 | \n",
+ " 3.682882e+11 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 262 | \n",
+ " 赞比亚 | \n",
+ " ZMB | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 7.130000e+08 | \n",
+ " 6.962857e+08 | \n",
+ " 6.931429e+08 | \n",
+ " 7.187143e+08 | \n",
+ " 8.394286e+08 | \n",
+ " 1.082857e+09 | \n",
+ " ... | \n",
+ " 2.346010e+10 | \n",
+ " 2.550337e+10 | \n",
+ " 2.804546e+10 | \n",
+ " 2.715063e+10 | \n",
+ " 2.115439e+10 | \n",
+ " 2.095475e+10 | \n",
+ " 2.586814e+10 | \n",
+ " 2.672007e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 263 | \n",
+ " 津巴布韦 | \n",
+ " ZWE | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 1.052990e+09 | \n",
+ " 1.096647e+09 | \n",
+ " 1.117602e+09 | \n",
+ " 1.159512e+09 | \n",
+ " 1.217138e+09 | \n",
+ " 1.311436e+09 | \n",
+ " ... | \n",
+ " 1.410192e+10 | \n",
+ " 1.711485e+10 | \n",
+ " 1.909102e+10 | \n",
+ " 1.949552e+10 | \n",
+ " 1.996312e+10 | \n",
+ " 2.054868e+10 | \n",
+ " 2.281301e+10 | \n",
+ " 3.100052e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
264 rows × 65 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Indicator Name Indicator Code 1960 \\\n",
+ "0 阿鲁巴 ABW GDP(现价美元) NY.GDP.MKTP.CD NaN \n",
+ "1 阿富汗 AFG GDP(现价美元) NY.GDP.MKTP.CD 5.377778e+08 \n",
+ "2 安哥拉 AGO GDP(现价美元) NY.GDP.MKTP.CD NaN \n",
+ "3 阿尔巴尼亚 ALB GDP(现价美元) NY.GDP.MKTP.CD NaN \n",
+ "4 安道尔共和国 AND GDP(现价美元) NY.GDP.MKTP.CD NaN \n",
+ ".. ... ... ... ... ... \n",
+ "259 科索沃 XKX GDP(现价美元) NY.GDP.MKTP.CD NaN \n",
+ "260 也门共和国 YEM GDP(现价美元) NY.GDP.MKTP.CD NaN \n",
+ "261 南非 ZAF GDP(现价美元) NY.GDP.MKTP.CD 7.575397e+09 \n",
+ "262 赞比亚 ZMB GDP(现价美元) NY.GDP.MKTP.CD 7.130000e+08 \n",
+ "263 津巴布韦 ZWE GDP(现价美元) NY.GDP.MKTP.CD 1.052990e+09 \n",
+ "\n",
+ " 1961 1962 1963 1964 1965 \\\n",
+ "0 NaN NaN NaN NaN NaN \n",
+ "1 5.488889e+08 5.466667e+08 7.511112e+08 8.000000e+08 1.006667e+09 \n",
+ "2 NaN NaN NaN NaN NaN \n",
+ "3 NaN NaN NaN NaN NaN \n",
+ "4 NaN NaN NaN NaN NaN \n",
+ ".. ... ... ... ... ... \n",
+ "259 NaN NaN NaN NaN NaN \n",
+ "260 NaN NaN NaN NaN NaN \n",
+ "261 7.972997e+09 8.497997e+09 9.423396e+09 1.037400e+10 1.133440e+10 \n",
+ "262 6.962857e+08 6.931429e+08 7.187143e+08 8.394286e+08 1.082857e+09 \n",
+ "263 1.096647e+09 1.117602e+09 1.159512e+09 1.217138e+09 1.311436e+09 \n",
+ "\n",
+ " ... 2011 2012 2013 2014 \\\n",
+ "0 ... 2.549721e+09 2.534637e+09 2.581564e+09 2.649721e+09 \n",
+ "1 ... 1.780428e+10 2.000162e+10 2.056105e+10 2.048487e+10 \n",
+ "2 ... 1.117897e+11 1.280529e+11 1.367099e+11 1.457122e+11 \n",
+ "3 ... 1.289087e+10 1.231978e+10 1.277628e+10 1.322825e+10 \n",
+ "4 ... 3.442063e+09 3.164615e+09 3.281585e+09 3.350736e+09 \n",
+ ".. ... ... ... ... ... \n",
+ "259 ... 6.691827e+09 6.499936e+09 7.071960e+09 7.386891e+09 \n",
+ "260 ... 3.272642e+10 3.540134e+10 4.041523e+10 4.322859e+10 \n",
+ "261 ... 4.164170e+11 3.963294e+11 3.666449e+11 3.506376e+11 \n",
+ "262 ... 2.346010e+10 2.550337e+10 2.804546e+10 2.715063e+10 \n",
+ "263 ... 1.410192e+10 1.711485e+10 1.909102e+10 1.949552e+10 \n",
+ "\n",
+ " 2015 2016 2017 2018 2019 Unnamed: 64 \n",
+ "0 2.691620e+09 2.646927e+09 2.700559e+09 NaN NaN NaN \n",
+ "1 1.990711e+10 1.936264e+10 2.019176e+10 1.936297e+10 NaN NaN \n",
+ "2 1.161936e+11 1.011239e+11 1.221238e+11 1.057510e+11 NaN NaN \n",
+ "3 1.138693e+10 1.186135e+10 1.302506e+10 1.505888e+10 NaN NaN \n",
+ "4 2.811489e+09 2.877312e+09 3.013387e+09 3.236544e+09 NaN NaN \n",
+ ".. ... ... ... ... ... ... \n",
+ "259 6.440612e+09 6.714712e+09 7.227765e+09 7.900269e+09 NaN NaN \n",
+ "260 4.262833e+10 3.096824e+10 2.681870e+10 2.691440e+10 NaN NaN \n",
+ "261 3.174156e+11 2.963409e+11 3.492681e+11 3.682882e+11 NaN NaN \n",
+ "262 2.115439e+10 2.095475e+10 2.586814e+10 2.672007e+10 NaN NaN \n",
+ "263 1.996312e+10 2.054868e+10 2.281301e+10 3.100052e+10 NaN NaN \n",
+ "\n",
+ "[264 rows x 65 columns]"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "gdp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "country_gdp = pd.merge(country_data, gdp, how='inner')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 阿鲁巴 | \n",
+ " ABW | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 2.549721e+09 | \n",
+ " 2.534637e+09 | \n",
+ " 2.581564e+09 | \n",
+ " 2.649721e+09 | \n",
+ " 2.691620e+09 | \n",
+ " 2.646927e+09 | \n",
+ " 2.700559e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 阿富汗 | \n",
+ " AFG | \n",
+ " 南亚 | \n",
+ " 低收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 5.377778e+08 | \n",
+ " 5.488889e+08 | \n",
+ " 5.466667e+08 | \n",
+ " ... | \n",
+ " 1.780428e+10 | \n",
+ " 2.000162e+10 | \n",
+ " 2.056105e+10 | \n",
+ " 2.048487e+10 | \n",
+ " 1.990711e+10 | \n",
+ " 1.936264e+10 | \n",
+ " 2.019176e+10 | \n",
+ " 1.936297e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 安哥拉 | \n",
+ " AGO | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中低等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 1.117897e+11 | \n",
+ " 1.280529e+11 | \n",
+ " 1.367099e+11 | \n",
+ " 1.457122e+11 | \n",
+ " 1.161936e+11 | \n",
+ " 1.011239e+11 | \n",
+ " 1.221238e+11 | \n",
+ " 1.057510e+11 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 阿尔巴尼亚 | \n",
+ " ALB | \n",
+ " 欧洲与中亚地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 1.289087e+10 | \n",
+ " 1.231978e+10 | \n",
+ " 1.277628e+10 | \n",
+ " 1.322825e+10 | \n",
+ " 1.138693e+10 | \n",
+ " 1.186135e+10 | \n",
+ " 1.302506e+10 | \n",
+ " 1.505888e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 安道尔共和国 | \n",
+ " AND | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.442063e+09 | \n",
+ " 3.164615e+09 | \n",
+ " 3.281585e+09 | \n",
+ " 3.350736e+09 | \n",
+ " 2.811489e+09 | \n",
+ " 2.877312e+09 | \n",
+ " 3.013387e+09 | \n",
+ " 3.236544e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 211 | \n",
+ " 科索沃 | \n",
+ " XKX | \n",
+ " 欧洲与中亚地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 6.691827e+09 | \n",
+ " 6.499936e+09 | \n",
+ " 7.071960e+09 | \n",
+ " 7.386891e+09 | \n",
+ " 6.440612e+09 | \n",
+ " 6.714712e+09 | \n",
+ " 7.227765e+09 | \n",
+ " 7.900269e+09 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 212 | \n",
+ " 也门共和国 | \n",
+ " YEM | \n",
+ " 中东与北非地区(不包括高收入) | \n",
+ " 低收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.272642e+10 | \n",
+ " 3.540134e+10 | \n",
+ " 4.041523e+10 | \n",
+ " 4.322859e+10 | \n",
+ " 4.262833e+10 | \n",
+ " 3.096824e+10 | \n",
+ " 2.681870e+10 | \n",
+ " 2.691440e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 213 | \n",
+ " 南非 | \n",
+ " ZAF | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 7.575397e+09 | \n",
+ " 7.972997e+09 | \n",
+ " 8.497997e+09 | \n",
+ " ... | \n",
+ " 4.164170e+11 | \n",
+ " 3.963294e+11 | \n",
+ " 3.666449e+11 | \n",
+ " 3.506376e+11 | \n",
+ " 3.174156e+11 | \n",
+ " 2.963409e+11 | \n",
+ " 3.492681e+11 | \n",
+ " 3.682882e+11 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 214 | \n",
+ " 赞比亚 | \n",
+ " ZMB | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中低等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 7.130000e+08 | \n",
+ " 6.962857e+08 | \n",
+ " 6.931429e+08 | \n",
+ " ... | \n",
+ " 2.346010e+10 | \n",
+ " 2.550337e+10 | \n",
+ " 2.804546e+10 | \n",
+ " 2.715063e+10 | \n",
+ " 2.115439e+10 | \n",
+ " 2.095475e+10 | \n",
+ " 2.586814e+10 | \n",
+ " 2.672007e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 215 | \n",
+ " 津巴布韦 | \n",
+ " ZWE | \n",
+ " 撒哈拉以南非洲地区(不包括高收入) | \n",
+ " 中低等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 1.052990e+09 | \n",
+ " 1.096647e+09 | \n",
+ " 1.117602e+09 | \n",
+ " ... | \n",
+ " 1.410192e+10 | \n",
+ " 1.711485e+10 | \n",
+ " 1.909102e+10 | \n",
+ " 1.949552e+10 | \n",
+ " 1.996312e+10 | \n",
+ " 2.054868e+10 | \n",
+ " 2.281301e+10 | \n",
+ " 3.100052e+10 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
216 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 \\\n",
+ "0 阿鲁巴 ABW NaN 高收入国家 NaN \n",
+ "1 阿富汗 AFG 南亚 低收入国家 NaN \n",
+ "2 安哥拉 AGO 撒哈拉以南非洲地区(不包括高收入) 中低等收入国家 NaN \n",
+ "3 阿尔巴尼亚 ALB 欧洲与中亚地区(不包括高收入) 中高等收入国家 NaN \n",
+ "4 安道尔共和国 AND NaN 高收入国家 NaN \n",
+ ".. ... ... ... ... ... \n",
+ "211 科索沃 XKX 欧洲与中亚地区(不包括高收入) 中高等收入国家 NaN \n",
+ "212 也门共和国 YEM 中东与北非地区(不包括高收入) 低收入国家 NaN \n",
+ "213 南非 ZAF 撒哈拉以南非洲地区(不包括高收入) 中高等收入国家 NaN \n",
+ "214 赞比亚 ZMB 撒哈拉以南非洲地区(不包括高收入) 中低等收入国家 NaN \n",
+ "215 津巴布韦 ZWE 撒哈拉以南非洲地区(不包括高收入) 中低等收入国家 NaN \n",
+ "\n",
+ " Indicator Name Indicator Code 1960 1961 1962 \\\n",
+ "0 GDP(现价美元) NY.GDP.MKTP.CD NaN NaN NaN \n",
+ "1 GDP(现价美元) NY.GDP.MKTP.CD 5.377778e+08 5.488889e+08 5.466667e+08 \n",
+ "2 GDP(现价美元) NY.GDP.MKTP.CD NaN NaN NaN \n",
+ "3 GDP(现价美元) NY.GDP.MKTP.CD NaN NaN NaN \n",
+ "4 GDP(现价美元) NY.GDP.MKTP.CD NaN NaN NaN \n",
+ ".. ... ... ... ... ... \n",
+ "211 GDP(现价美元) NY.GDP.MKTP.CD NaN NaN NaN \n",
+ "212 GDP(现价美元) NY.GDP.MKTP.CD NaN NaN NaN \n",
+ "213 GDP(现价美元) NY.GDP.MKTP.CD 7.575397e+09 7.972997e+09 8.497997e+09 \n",
+ "214 GDP(现价美元) NY.GDP.MKTP.CD 7.130000e+08 6.962857e+08 6.931429e+08 \n",
+ "215 GDP(现价美元) NY.GDP.MKTP.CD 1.052990e+09 1.096647e+09 1.117602e+09 \n",
+ "\n",
+ " ... 2011 2012 2013 2014 \\\n",
+ "0 ... 2.549721e+09 2.534637e+09 2.581564e+09 2.649721e+09 \n",
+ "1 ... 1.780428e+10 2.000162e+10 2.056105e+10 2.048487e+10 \n",
+ "2 ... 1.117897e+11 1.280529e+11 1.367099e+11 1.457122e+11 \n",
+ "3 ... 1.289087e+10 1.231978e+10 1.277628e+10 1.322825e+10 \n",
+ "4 ... 3.442063e+09 3.164615e+09 3.281585e+09 3.350736e+09 \n",
+ ".. ... ... ... ... ... \n",
+ "211 ... 6.691827e+09 6.499936e+09 7.071960e+09 7.386891e+09 \n",
+ "212 ... 3.272642e+10 3.540134e+10 4.041523e+10 4.322859e+10 \n",
+ "213 ... 4.164170e+11 3.963294e+11 3.666449e+11 3.506376e+11 \n",
+ "214 ... 2.346010e+10 2.550337e+10 2.804546e+10 2.715063e+10 \n",
+ "215 ... 1.410192e+10 1.711485e+10 1.909102e+10 1.949552e+10 \n",
+ "\n",
+ " 2015 2016 2017 2018 2019 Unnamed: 64 \n",
+ "0 2.691620e+09 2.646927e+09 2.700559e+09 NaN NaN NaN \n",
+ "1 1.990711e+10 1.936264e+10 2.019176e+10 1.936297e+10 NaN NaN \n",
+ "2 1.161936e+11 1.011239e+11 1.221238e+11 1.057510e+11 NaN NaN \n",
+ "3 1.138693e+10 1.186135e+10 1.302506e+10 1.505888e+10 NaN NaN \n",
+ "4 2.811489e+09 2.877312e+09 3.013387e+09 3.236544e+09 NaN NaN \n",
+ ".. ... ... ... ... ... ... \n",
+ "211 6.440612e+09 6.714712e+09 7.227765e+09 7.900269e+09 NaN NaN \n",
+ "212 4.262833e+10 3.096824e+10 2.681870e+10 2.691440e+10 NaN NaN \n",
+ "213 3.174156e+11 2.963409e+11 3.492681e+11 3.682882e+11 NaN NaN \n",
+ "214 2.115439e+10 2.095475e+10 2.586814e+10 2.672007e+10 NaN NaN \n",
+ "215 1.996312e+10 2.054868e+10 2.281301e+10 3.100052e+10 NaN NaN \n",
+ "\n",
+ "[216 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 57,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "country_gdp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# country_gdp['2018'] = country_gdp['2018'].apply(lambda x: x/1000000000000)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " 2018 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 202 | \n",
+ " 美国 | \n",
+ " USA | \n",
+ " 20.494100 | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " 中国 | \n",
+ " CHN | \n",
+ " 13.608152 | \n",
+ "
\n",
+ " \n",
+ " 97 | \n",
+ " 日本 | \n",
+ " JPN | \n",
+ " 4.970916 | \n",
+ "
\n",
+ " \n",
+ " 50 | \n",
+ " 德国 | \n",
+ " DEU | \n",
+ " 3.996759 | \n",
+ "
\n",
+ " \n",
+ " 68 | \n",
+ " 英国 | \n",
+ " GBR | \n",
+ " 2.825208 | \n",
+ "
\n",
+ " \n",
+ " 64 | \n",
+ " 法国 | \n",
+ " FRA | \n",
+ " 2.777535 | \n",
+ "
\n",
+ " \n",
+ " 89 | \n",
+ " 印度 | \n",
+ " IND | \n",
+ " 2.726323 | \n",
+ "
\n",
+ " \n",
+ " 94 | \n",
+ " 意大利 | \n",
+ " ITA | \n",
+ " 2.073902 | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " 巴西 | \n",
+ " BRA | \n",
+ " 1.868626 | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " 加拿大 | \n",
+ " CAN | \n",
+ " 1.712510 | \n",
+ "
\n",
+ " \n",
+ " 164 | \n",
+ " 俄罗斯联邦 | \n",
+ " RUS | \n",
+ " 1.657554 | \n",
+ "
\n",
+ " \n",
+ " 104 | \n",
+ " 大韩民国 | \n",
+ " KOR | \n",
+ " 1.619424 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 澳大利亚 | \n",
+ " AUS | \n",
+ " 1.432195 | \n",
+ "
\n",
+ " \n",
+ " 59 | \n",
+ " 西班牙 | \n",
+ " ESP | \n",
+ " 1.426189 | \n",
+ "
\n",
+ " \n",
+ " 124 | \n",
+ " 墨西哥 | \n",
+ " MEX | \n",
+ " 1.223809 | \n",
+ "
\n",
+ " \n",
+ " 87 | \n",
+ " 印度尼西亚 | \n",
+ " IDN | \n",
+ " 1.042173 | \n",
+ "
\n",
+ " \n",
+ " 143 | \n",
+ " 荷兰 | \n",
+ " NLD | \n",
+ " 0.913658 | \n",
+ "
\n",
+ " \n",
+ " 166 | \n",
+ " 沙特阿拉伯 | \n",
+ " SAU | \n",
+ " 0.782483 | \n",
+ "
\n",
+ " \n",
+ " 196 | \n",
+ " 土耳其 | \n",
+ " TUR | \n",
+ " 0.766509 | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " 瑞士 | \n",
+ " CHE | \n",
+ " 0.705501 | \n",
+ "
\n",
+ " \n",
+ " 155 | \n",
+ " 波兰 | \n",
+ " POL | \n",
+ " 0.585783 | \n",
+ "
\n",
+ " \n",
+ " 181 | \n",
+ " 瑞典 | \n",
+ " SWE | \n",
+ " 0.551032 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 比利时 | \n",
+ " BEL | \n",
+ " 0.531767 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 阿根廷 | \n",
+ " ARG | \n",
+ " 0.518475 | \n",
+ "
\n",
+ " \n",
+ " 189 | \n",
+ " 泰国 | \n",
+ " THA | \n",
+ " 0.504993 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 奥地利 | \n",
+ " AUT | \n",
+ " 0.455737 | \n",
+ "
\n",
+ " \n",
+ " 144 | \n",
+ " 挪威 | \n",
+ " NOR | \n",
+ " 0.434751 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 阿拉伯联合酋长国 | \n",
+ " ARE | \n",
+ " 0.414179 | \n",
+ "
\n",
+ " \n",
+ " 141 | \n",
+ " 尼日利亚 | \n",
+ " NGA | \n",
+ " 0.397270 | \n",
+ "
\n",
+ " \n",
+ " 90 | \n",
+ " 爱尔兰 | \n",
+ " IRL | \n",
+ " 0.382487 | \n",
+ "
\n",
+ " \n",
+ " 93 | \n",
+ " 以色列 | \n",
+ " ISR | \n",
+ " 0.369690 | \n",
+ "
\n",
+ " \n",
+ " 213 | \n",
+ " 南非 | \n",
+ " ZAF | \n",
+ " 0.368288 | \n",
+ "
\n",
+ " \n",
+ " 169 | \n",
+ " 新加坡 | \n",
+ " SGP | \n",
+ " 0.364157 | \n",
+ "
\n",
+ " \n",
+ " 82 | \n",
+ " 中国香港特别行政区 | \n",
+ " HKG | \n",
+ " 0.362993 | \n",
+ "
\n",
+ " \n",
+ " 137 | \n",
+ " 马来西亚 | \n",
+ " MYS | \n",
+ " 0.354348 | \n",
+ "
\n",
+ " \n",
+ " 53 | \n",
+ " 丹麦 | \n",
+ " DNK | \n",
+ " 0.352058 | \n",
+ "
\n",
+ " \n",
+ " 152 | \n",
+ " 菲律宾 | \n",
+ " PHL | \n",
+ " 0.330910 | \n",
+ "
\n",
+ " \n",
+ " 41 | \n",
+ " 哥伦比亚 | \n",
+ " COL | \n",
+ " 0.330228 | \n",
+ "
\n",
+ " \n",
+ " 149 | \n",
+ " 巴基斯坦 | \n",
+ " PAK | \n",
+ " 0.312570 | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " 智利 | \n",
+ " CHL | \n",
+ " 0.298231 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 孟加拉国 | \n",
+ " BGD | \n",
+ " 0.274025 | \n",
+ "
\n",
+ " \n",
+ " 62 | \n",
+ " 芬兰 | \n",
+ " FIN | \n",
+ " 0.273961 | \n",
+ "
\n",
+ " \n",
+ " 57 | \n",
+ " 阿拉伯埃及共和国 | \n",
+ " EGY | \n",
+ " 0.250895 | \n",
+ "
\n",
+ " \n",
+ " 49 | \n",
+ " 捷克共和国 | \n",
+ " CZE | \n",
+ " 0.245226 | \n",
+ "
\n",
+ " \n",
+ " 208 | \n",
+ " 越南 | \n",
+ " VNM | \n",
+ " 0.244948 | \n",
+ "
\n",
+ " \n",
+ " 163 | \n",
+ " 罗马尼亚 | \n",
+ " ROU | \n",
+ " 0.239553 | \n",
+ "
\n",
+ " \n",
+ " 158 | \n",
+ " 葡萄牙 | \n",
+ " PRT | \n",
+ " 0.237979 | \n",
+ "
\n",
+ " \n",
+ " 91 | \n",
+ " 伊拉克 | \n",
+ " IRQ | \n",
+ " 0.225914 | \n",
+ "
\n",
+ " \n",
+ " 151 | \n",
+ " 秘鲁 | \n",
+ " PER | \n",
+ " 0.222238 | \n",
+ "
\n",
+ " \n",
+ " 76 | \n",
+ " 希腊 | \n",
+ " GRC | \n",
+ " 0.218032 | \n",
+ "
\n",
+ " \n",
+ " 147 | \n",
+ " 新西兰 | \n",
+ " NZL | \n",
+ " 0.205025 | \n",
+ "
\n",
+ " \n",
+ " 162 | \n",
+ " 卡塔尔 | \n",
+ " QAT | \n",
+ " 0.192009 | \n",
+ "
\n",
+ " \n",
+ " 55 | \n",
+ " 阿尔及利亚 | \n",
+ " DZA | \n",
+ " 0.180689 | \n",
+ "
\n",
+ " \n",
+ " 98 | \n",
+ " 哈萨克斯坦 | \n",
+ " KAZ | \n",
+ " 0.170539 | \n",
+ "
\n",
+ " \n",
+ " 86 | \n",
+ " 匈牙利 | \n",
+ " HUN | \n",
+ " 0.155703 | \n",
+ "
\n",
+ " \n",
+ " 105 | \n",
+ " 科威特 | \n",
+ " KWT | \n",
+ " 0.141678 | \n",
+ "
\n",
+ " \n",
+ " 200 | \n",
+ " 乌克兰 | \n",
+ " UKR | \n",
+ " 0.130832 | \n",
+ "
\n",
+ " \n",
+ " 119 | \n",
+ " 摩洛哥 | \n",
+ " MAR | \n",
+ " 0.118495 | \n",
+ "
\n",
+ " \n",
+ " 56 | \n",
+ " 厄瓜多尔 | \n",
+ " ECU | \n",
+ " 0.108398 | \n",
+ "
\n",
+ " \n",
+ " 179 | \n",
+ " 斯洛伐克共和国 | \n",
+ " SVK | \n",
+ " 0.106472 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code 2018\n",
+ "202 美国 USA 20.494100\n",
+ "36 中国 CHN 13.608152\n",
+ "97 日本 JPN 4.970916\n",
+ "50 德国 DEU 3.996759\n",
+ "68 英国 GBR 2.825208\n",
+ "64 法国 FRA 2.777535\n",
+ "89 印度 IND 2.726323\n",
+ "94 意大利 ITA 2.073902\n",
+ "26 巴西 BRA 1.868626\n",
+ "32 加拿大 CAN 1.712510\n",
+ "164 俄罗斯联邦 RUS 1.657554\n",
+ "104 大韩民国 KOR 1.619424\n",
+ "10 澳大利亚 AUS 1.432195\n",
+ "59 西班牙 ESP 1.426189\n",
+ "124 墨西哥 MEX 1.223809\n",
+ "87 印度尼西亚 IDN 1.042173\n",
+ "143 荷兰 NLD 0.913658\n",
+ "166 沙特阿拉伯 SAU 0.782483\n",
+ "196 土耳其 TUR 0.766509\n",
+ "33 瑞士 CHE 0.705501\n",
+ "155 波兰 POL 0.585783\n",
+ "181 瑞典 SWE 0.551032\n",
+ "14 比利时 BEL 0.531767\n",
+ "6 阿根廷 ARG 0.518475\n",
+ "189 泰国 THA 0.504993\n",
+ "11 奥地利 AUT 0.455737\n",
+ "144 挪威 NOR 0.434751\n",
+ "5 阿拉伯联合酋长国 ARE 0.414179\n",
+ "141 尼日利亚 NGA 0.397270\n",
+ "90 爱尔兰 IRL 0.382487\n",
+ "93 以色列 ISR 0.369690\n",
+ "213 南非 ZAF 0.368288\n",
+ "169 新加坡 SGP 0.364157\n",
+ "82 中国香港特别行政区 HKG 0.362993\n",
+ "137 马来西亚 MYS 0.354348\n",
+ "53 丹麦 DNK 0.352058\n",
+ "152 菲律宾 PHL 0.330910\n",
+ "41 哥伦比亚 COL 0.330228\n",
+ "149 巴基斯坦 PAK 0.312570\n",
+ "35 智利 CHL 0.298231\n",
+ "17 孟加拉国 BGD 0.274025\n",
+ "62 芬兰 FIN 0.273961\n",
+ "57 阿拉伯埃及共和国 EGY 0.250895\n",
+ "49 捷克共和国 CZE 0.245226\n",
+ "208 越南 VNM 0.244948\n",
+ "163 罗马尼亚 ROU 0.239553\n",
+ "158 葡萄牙 PRT 0.237979\n",
+ "91 伊拉克 IRQ 0.225914\n",
+ "151 秘鲁 PER 0.222238\n",
+ "76 希腊 GRC 0.218032\n",
+ "147 新西兰 NZL 0.205025\n",
+ "162 卡塔尔 QAT 0.192009\n",
+ "55 阿尔及利亚 DZA 0.180689\n",
+ "98 哈萨克斯坦 KAZ 0.170539\n",
+ "86 匈牙利 HUN 0.155703\n",
+ "105 科威特 KWT 0.141678\n",
+ "200 乌克兰 UKR 0.130832\n",
+ "119 摩洛哥 MAR 0.118495\n",
+ "56 厄瓜多尔 ECU 0.108398\n",
+ "179 斯洛伐克共和国 SVK 0.106472"
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "country_gdp[['Country Name', 'Country Code', '2018']].sort_values(by='2018', ascending=False)[:60]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#############################\n",
+ "# 历年GDP分析"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "df_china = country_gdp[country_gdp['Country Name']=='中国']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\users\\wei.zhou\\appdata\\local\\programs\\python\\python37-32\\lib\\site-packages\\ipykernel_launcher.py:2: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " \n"
+ ]
+ }
+ ],
+ "source": [
+ "for i in range(1960, 2019):\n",
+ " df_china[str(i)] = df_china[str(i)].apply(lambda x: x/1000000000000)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\users\\wei.zhou\\appdata\\local\\programs\\python\\python37-32\\lib\\site-packages\\ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " This is separate from the ipykernel package so we can avoid doing imports until\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 202 | \n",
+ " 美国 | \n",
+ " USA | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 0.5433 | \n",
+ " 0.5633 | \n",
+ " 0.6051 | \n",
+ " ... | \n",
+ " 15.542581 | \n",
+ " 16.197007 | \n",
+ " 16.784849 | \n",
+ " 17.521747 | \n",
+ " 18.219298 | \n",
+ " 18.707188 | \n",
+ " 19.485394 | \n",
+ " 20.4941 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 Indicator Name \\\n",
+ "202 美国 USA NaN 高收入国家 NaN GDP(现价美元) \n",
+ "\n",
+ " Indicator Code 1960 1961 1962 ... 2011 2012 \\\n",
+ "202 NY.GDP.MKTP.CD 0.5433 0.5633 0.6051 ... 15.542581 16.197007 \n",
+ "\n",
+ " 2013 2014 2015 2016 2017 2018 2019 \\\n",
+ "202 16.784849 17.521747 18.219298 18.707188 19.485394 20.4941 NaN \n",
+ "\n",
+ " Unnamed: 64 \n",
+ "202 NaN \n",
+ "\n",
+ "[1 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_usa = country_gdp[country_gdp['Country Name']=='美国']\n",
+ "for i in range(1960, 2019):\n",
+ " df_usa[str(i)] = df_usa[str(i)].apply(lambda x: x/1000000000000)\n",
+ "df_usa"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\users\\wei.zhou\\appdata\\local\\programs\\python\\python37-32\\lib\\site-packages\\ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " This is separate from the ipykernel package so we can avoid doing imports until\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 97 | \n",
+ " 日本 | \n",
+ " JPN | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 0.044307 | \n",
+ " 0.053509 | \n",
+ " 0.060723 | \n",
+ " ... | \n",
+ " 6.15746 | \n",
+ " 6.203213 | \n",
+ " 5.155717 | \n",
+ " 4.850414 | \n",
+ " 4.389476 | \n",
+ " 4.926667 | \n",
+ " 4.859951 | \n",
+ " 4.970916 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 Indicator Name \\\n",
+ "97 日本 JPN NaN 高收入国家 NaN GDP(现价美元) \n",
+ "\n",
+ " Indicator Code 1960 1961 1962 ... 2011 2012 \\\n",
+ "97 NY.GDP.MKTP.CD 0.044307 0.053509 0.060723 ... 6.15746 6.203213 \n",
+ "\n",
+ " 2013 2014 2015 2016 2017 2018 2019 \\\n",
+ "97 5.155717 4.850414 4.389476 4.926667 4.859951 4.970916 NaN \n",
+ "\n",
+ " Unnamed: 64 \n",
+ "97 NaN \n",
+ "\n",
+ "[1 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_jpn = country_gdp[country_gdp['Country Name']=='日本']\n",
+ "for i in range(1960, 2019):\n",
+ " df_jpn[str(i)] = df_jpn[str(i)].apply(lambda x: x/1000000000000)\n",
+ "df_jpn"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\users\\wei.zhou\\appdata\\local\\programs\\python\\python37-32\\lib\\site-packages\\ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " This is separate from the ipykernel package so we can avoid doing imports until\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 50 | \n",
+ " 德国 | \n",
+ " DEU | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " 3.757698 | \n",
+ " 3.543984 | \n",
+ " 3.752514 | \n",
+ " 3.898727 | \n",
+ " 3.381389 | \n",
+ " 3.495163 | \n",
+ " 3.693204 | \n",
+ " 3.996759 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 Indicator Name \\\n",
+ "50 德国 DEU NaN 高收入国家 NaN GDP(现价美元) \n",
+ "\n",
+ " Indicator Code 1960 1961 1962 ... 2011 2012 2013 \\\n",
+ "50 NY.GDP.MKTP.CD NaN NaN NaN ... 3.757698 3.543984 3.752514 \n",
+ "\n",
+ " 2014 2015 2016 2017 2018 2019 Unnamed: 64 \n",
+ "50 3.898727 3.381389 3.495163 3.693204 3.996759 NaN NaN \n",
+ "\n",
+ "[1 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_de = country_gdp[country_gdp['Country Name']=='德国']\n",
+ "for i in range(1960, 2019):\n",
+ " df_de[str(i)] = df_de[str(i)].apply(lambda x: x/1000000000000)\n",
+ "df_de"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "c:\\users\\wei.zhou\\appdata\\local\\programs\\python\\python37-32\\lib\\site-packages\\ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " This is separate from the ipykernel package so we can avoid doing imports until\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 68 | \n",
+ " 英国 | \n",
+ " GBR | \n",
+ " NaN | \n",
+ " 高收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 0.072328 | \n",
+ " 0.076694 | \n",
+ " 0.080602 | \n",
+ " ... | \n",
+ " 2.634896 | \n",
+ " 2.676605 | \n",
+ " 2.753565 | \n",
+ " 3.034729 | \n",
+ " 2.896421 | \n",
+ " 2.659239 | \n",
+ " 2.637866 | \n",
+ " 2.825208 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 Indicator Name \\\n",
+ "68 英国 GBR NaN 高收入国家 NaN GDP(现价美元) \n",
+ "\n",
+ " Indicator Code 1960 1961 1962 ... 2011 2012 \\\n",
+ "68 NY.GDP.MKTP.CD 0.072328 0.076694 0.080602 ... 2.634896 2.676605 \n",
+ "\n",
+ " 2013 2014 2015 2016 2017 2018 2019 \\\n",
+ "68 2.753565 3.034729 2.896421 2.659239 2.637866 2.825208 NaN \n",
+ "\n",
+ " Unnamed: 64 \n",
+ "68 NaN \n",
+ "\n",
+ "[1 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_uk = country_gdp[country_gdp['Country Name']=='英国']\n",
+ "for i in range(1960, 2019):\n",
+ " df_uk[str(i)] = df_uk[str(i)].apply(lambda x: x/1000000000000)\n",
+ "df_uk"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "year_str = [str(i) for i in range(1960, 2019)]\n",
+ "\n",
+ "china_gdp = df_china[year_str].values.tolist()[0]\n",
+ "usa_gdp = df_usa[year_str].values.tolist()[0]\n",
+ "jpn_gdp = df_jpn[year_str].values.tolist()[0]\n",
+ "de_gdp = df_de[year_str].values.tolist()[0]\n",
+ "uk_gdp = df_uk[year_str].values.tolist()[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 154,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Country Name | \n",
+ " Country Code | \n",
+ " Region | \n",
+ " Income_Group | \n",
+ " Unnamed: 4 | \n",
+ " Indicator Name | \n",
+ " Indicator Code | \n",
+ " 1960 | \n",
+ " 1961 | \n",
+ " 1962 | \n",
+ " ... | \n",
+ " 2011 | \n",
+ " 2012 | \n",
+ " 2013 | \n",
+ " 2014 | \n",
+ " 2015 | \n",
+ " 2016 | \n",
+ " 2017 | \n",
+ " 2018 | \n",
+ " 2019 | \n",
+ " Unnamed: 64 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 36 | \n",
+ " 中国 | \n",
+ " CHN | \n",
+ " 东亚与太平洋地区(不包括高收入) | \n",
+ " 中高等收入国家 | \n",
+ " NaN | \n",
+ " GDP(现价美元) | \n",
+ " NY.GDP.MKTP.CD | \n",
+ " 0.059716 | \n",
+ " 0.050057 | \n",
+ " 0.047209 | \n",
+ " ... | \n",
+ " 7.5515 | \n",
+ " 8.532231 | \n",
+ " 9.570406 | \n",
+ " 10.438529 | \n",
+ " 11.015542 | \n",
+ " 11.137946 | \n",
+ " 12.143491 | \n",
+ " 13.608152 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
1 rows × 68 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Country Name Country Code Region Income_Group Unnamed: 4 \\\n",
+ "36 中国 CHN 东亚与太平洋地区(不包括高收入) 中高等收入国家 NaN \n",
+ "\n",
+ " Indicator Name Indicator Code 1960 1961 1962 ... 2011 \\\n",
+ "36 GDP(现价美元) NY.GDP.MKTP.CD 0.059716 0.050057 0.047209 ... 7.5515 \n",
+ "\n",
+ " 2012 2013 2014 2015 2016 2017 2018 \\\n",
+ "36 8.532231 9.570406 10.438529 11.015542 11.137946 12.143491 13.608152 \n",
+ "\n",
+ " 2019 Unnamed: 64 \n",
+ "36 NaN NaN \n",
+ "\n",
+ "[1 rows x 68 columns]"
+ ]
+ },
+ "execution_count": 154,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_china"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pyecharts.charts import Scatter\n",
+ "\n",
+ "def scatter_base(choose, values, country) -> Scatter:\n",
+ " c = (\n",
+ " Scatter()\n",
+ " .add_xaxis(choose)\n",
+ " .add_yaxis(\"%s历年GDP\" % country, values)\n",
+ " .set_global_opts(title_opts=opts.TitleOpts(title=\"\"),\n",
+ " # datazoom_opts=opts.DataZoomOpts(),\n",
+ " yaxis_opts=opts.AxisOpts(\n",
+ " axislabel_opts=opts.LabelOpts(formatter=\"{value} /万亿\")\n",
+ " )\n",
+ " )\n",
+ " .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
+ " )\n",
+ " return c"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scatter_base(year_str, china_gdp, '中国').render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scatter_base(year_str, usa_gdp, '美国').render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scatter_base(year_str, jpn_gdp, '日本').render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scatter_base(year_str, de_gdp, '德国').render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scatter_base(year_str, uk_gdp, '英国').render_notebook()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import sklearn.pipeline as pl\n",
+ "import sklearn.linear_model as lm\n",
+ "import sklearn.preprocessing as sp\n",
+ "import matplotlib.pyplot as mp\n",
+ "import numpy as np\n",
+ "import sklearn.metrics as sm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[1960],\n",
+ " [1961],\n",
+ " [1962],\n",
+ " [1963],\n",
+ " [1964],\n",
+ " [1965],\n",
+ " [1966],\n",
+ " [1967],\n",
+ " [1968],\n",
+ " [1969],\n",
+ " [1970],\n",
+ " [1971],\n",
+ " [1972],\n",
+ " [1973],\n",
+ " [1974],\n",
+ " [1975],\n",
+ " [1976],\n",
+ " [1977],\n",
+ " [1978],\n",
+ " [1979],\n",
+ " [1980],\n",
+ " [1981],\n",
+ " [1982],\n",
+ " [1983],\n",
+ " [1984],\n",
+ " [1985],\n",
+ " [1986],\n",
+ " [1987],\n",
+ " [1988],\n",
+ " [1989],\n",
+ " [1990],\n",
+ " [1991],\n",
+ " [1992],\n",
+ " [1993],\n",
+ " [1994],\n",
+ " [1995],\n",
+ " [1996],\n",
+ " [1997],\n",
+ " [1998],\n",
+ " [1999],\n",
+ " [2000],\n",
+ " [2001],\n",
+ " [2002],\n",
+ " [2003],\n",
+ " [2004],\n",
+ " [2005],\n",
+ " [2006],\n",
+ " [2007],\n",
+ " [2008],\n",
+ " [2009],\n",
+ " [2010],\n",
+ " [2011],\n",
+ " [2012],\n",
+ " [2013],\n",
+ " [2014],\n",
+ " [2015],\n",
+ " [2016],\n",
+ " [2017],\n",
+ " [2018]])"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "year = [i for i in range(1960, 2019)]\n",
+ "X = np.array(year)\n",
+ "X = X.reshape(-1, 1)\n",
+ "X"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "y = usa_gdp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "model = pl.make_pipeline(\n",
+ " sp.PolynomialFeatures(5), # 多项式特征拓展器\n",
+ " lm.LinearRegression() # 线性回归器\n",
+ ")\n",
+ "# 训练模型\n",
+ "model.fit(X, y)\n",
+ "# 求预测值y\n",
+ "pred_y = model.predict(X)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 244,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([ 0.67561513, 0.64550236, 0.63069893, 0.6310778 , 0.64651146,\n",
+ " 0.67687193, 0.7220308 , 0.78185916, 0.85622766, 0.94500648,\n",
+ " 1.04806535, 1.16527352, 1.29649978, 1.44161246, 1.60047942,\n",
+ " 1.77296806, 1.9589453 , 2.15827761, 2.37083099, 2.59647097,\n",
+ " 2.8350626 , 3.08647047, 3.35055872, 3.62719099, 3.91623047,\n",
+ " 4.21753986, 4.53098142, 4.8564169 , 5.19370761, 5.54271437,\n",
+ " 5.90329754, 6.27531699, 6.65863212, 7.05310188, 7.4585847 ,\n",
+ " 7.87493857, 8.302021 , 8.739689 , 9.18779914, 9.64620748,\n",
+ " 10.11476961, 10.59334065, 11.08177525, 11.57992755, 12.08765123,\n",
+ " 12.60479949, 13.13122504, 13.66678012, 14.21131649, 14.7646854 ,\n",
+ " 15.32673766, 15.89732355, 16.47629291, 17.06349506, 17.65877886,\n",
+ " 18.26199267, 18.87298437, 19.49160136, 20.11769053])"
+ ]
+ },
+ "execution_count": 244,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pred_y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([-6.56811530e-01, -4.31663493e-01, -2.35026973e-01, -6.53989891e-02,\n",
+ " 7.87281703e-02, 1.98866952e-01, 2.96534541e-01, 3.73252871e-01,\n",
+ " 4.30548622e-01, 4.69953232e-01, 4.93002894e-01, 5.01238570e-01,\n",
+ " 4.96205988e-01, 4.79455654e-01, 4.52542849e-01, 4.17027639e-01,\n",
+ " 3.74474880e-01, 3.26454222e-01, 2.74540110e-01, 2.20311797e-01,\n",
+ " 1.65353340e-01, 1.11253613e-01, 5.96063043e-02, 1.20099274e-02,\n",
+ " -2.99321770e-02, -6.46118355e-02, -9.04160388e-02, -1.05726933e-01,\n",
+ " -1.08921820e-01, -9.83731464e-02, -7.24485036e-02, -2.95106209e-02,\n",
+ " 3.20826372e-02, 1.13978281e-01, 2.17828195e-01, 3.45289144e-01,\n",
+ " 4.98022782e-01, 6.77695650e-01, 8.85979189e-01, 1.12454974e+00,\n",
+ " 1.39508854e+00, 1.69928175e+00, 2.03882045e+00, 2.41540061e+00,\n",
+ " 2.83072316e+00, 3.28649394e+00, 3.78442374e+00, 4.32622827e+00,\n",
+ " 4.91362820e+00, 5.54834914e+00, 6.23212165e+00, 6.96668128e+00,\n",
+ " 7.75376850e+00, 8.59512877e+00, 9.49251254e+00, 1.04476752e+01,\n",
+ " 1.14623772e+01, 1.25383838e+01, 1.36774655e+01, 1.48813976e+01])"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "p_year = [i for i in range(1960, 2020)]\n",
+ "p_X = np.array(p_year)\n",
+ "p_X = p_X.reshape(-1, 1)\n",
+ "p_pred_y = model.predict(p_X)\n",
+ "p_pred_y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 245,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[0.5433,\n",
+ " 0.5633,\n",
+ " 0.6051,\n",
+ " 0.6386,\n",
+ " 0.6858,\n",
+ " 0.7437,\n",
+ " 0.815,\n",
+ " 0.8617,\n",
+ " 0.9425,\n",
+ " 1.0199,\n",
+ " 1.073303,\n",
+ " 1.16485,\n",
+ " 1.27911,\n",
+ " 1.425376,\n",
+ " 1.545243,\n",
+ " 1.684904,\n",
+ " 1.873412,\n",
+ " 2.081826,\n",
+ " 2.351599,\n",
+ " 2.627334,\n",
+ " 2.857307,\n",
+ " 3.207042,\n",
+ " 3.343789,\n",
+ " 3.634038,\n",
+ " 4.037613,\n",
+ " 4.338979,\n",
+ " 4.579631,\n",
+ " 4.855215,\n",
+ " 5.236438,\n",
+ " 5.64158,\n",
+ " 5.963144,\n",
+ " 6.158129,\n",
+ " 6.520327,\n",
+ " 6.858559,\n",
+ " 7.287236,\n",
+ " 7.639749,\n",
+ " 8.073122,\n",
+ " 8.577554463,\n",
+ " 9.062818211,\n",
+ " 9.630664202,\n",
+ " 10.252345464,\n",
+ " 10.581821399,\n",
+ " 10.936419054,\n",
+ " 11.458243878,\n",
+ " 12.213729147,\n",
+ " 13.036640229,\n",
+ " 13.814611414,\n",
+ " 14.45185865,\n",
+ " 14.712844084,\n",
+ " 14.448933025,\n",
+ " 14.992052727,\n",
+ " 15.542581104,\n",
+ " 16.197007349,\n",
+ " 16.78484919,\n",
+ " 17.521746534,\n",
+ " 18.219297584,\n",
+ " 18.707188235,\n",
+ " 19.485393853,\n",
+ " 20.4941]"
+ ]
+ },
+ "execution_count": 245,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "