{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# *Analyzing CIA Factbook Data Using SQLite and Python*\n",
"\n",
"**In this Project we're working with data from the CIA World Factbook, a compendium of statistics about all of the countries on Earth. You can download the SQLite database, factbook.db, from this [GitHub repo](https://github.com/factbook/factbook.sql/releases).
The Factbook contains demographic information like:**\n",
"\n",
"> name - The name of the country. \n",
"> area - The total land and water area. \n",
"> area_land - The country's land area in square kilometers. \n",
"> area_water - The country's waterarea in square kilometers. \n",
"> population - The population as of 2015. \n",
"> population_growth - The annual population growth rate, as a percentage. \n",
"> birth_rate - The country's birth rate, or the number of births a year per 1,000 people. \n",
"> death_rate - The country's death rate, or the number of death a year per 1,000 people. \n",
"\n",
"### Aim\n",
"\n",
"**Here, we'll explore the Python SQLite workflow to explore, analyze, and visualize data from this database**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Overview \n",
"\n",
"- Importing pandas and sqlite3.\n",
"- Connecting to factbook.db and use pandas.read_sql_query() to return information on the tables in the database.\n",
"- We will run another query to return first 5 rows of the facts table in the database."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" min_pop max_pop min_pop_growth max_pop_growth\n",
"0 0 7256490011 0.0 4.02"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"query2 = '''SELECT MIN(population) 'min_pop', \n",
"MAX(population) 'max_pop', \n",
"MIN(population_growth) 'min_pop_growth', \n",
"MAX(population_growth) 'max_pop_growth' \n",
"FROM facts'''\n",
"pd.read_sql_query(query2, conn)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exploring Outliers\n",
"\n",
"- We will write a query that return the countries with a population of 0.\n",
"- We will write a query that return the countries with a population of 7256490011."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
id
\n",
"
code
\n",
"
name
\n",
"
area
\n",
"
area_land
\n",
"
area_water
\n",
"
population
\n",
"
population_growth
\n",
"
birth_rate
\n",
"
death_rate
\n",
"
migration_rate
\n",
"
created_at
\n",
"
updated_at
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
250
\n",
"
ay
\n",
"
Antarctica
\n",
"
None
\n",
"
280000.0
\n",
"
None
\n",
"
0
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
"
None
\n",
"
2015-11-01 13:38:44.885746
\n",
"
2015-11-01 13:38:44.885746
\n",
"
\n",
"
\n",
"
1
\n",
"
261
\n",
"
xx
\n",
"
World
\n",
"
None
\n",
"
NaN
\n",
"
None
\n",
"
7256490011
\n",
"
1.08
\n",
"
18.6
\n",
"
7.8
\n",
"
None
\n",
"
2015-11-01 13:39:09.910721
\n",
"
2015-11-01 13:39:09.910721
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" id code name area area_land area_water population \\\n",
"0 250 ay Antarctica None 280000.0 None 0 \n",
"1 261 xx World None NaN None 7256490011 \n",
"\n",
" population_growth birth_rate death_rate migration_rate \\\n",
"0 NaN NaN NaN None \n",
"1 1.08 18.6 7.8 None \n",
"\n",
" created_at updated_at \n",
"0 2015-11-01 13:38:44.885746 2015-11-01 13:38:44.885746 \n",
"1 2015-11-01 13:39:09.910721 2015-11-01 13:39:09.910721 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"query3 = '''SELECT * FROM facts WHERE population == 0 or population == 7256490011'''\n",
"pd.read_sql_query(query3, conn)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Here, we can observe that country listed with zero population is Antartica, since there is nobody living there. And, the country listed with 7.2 Billion people is actually the world itself where whole world's population gets counted in just a single country.**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Histograms\n",
"\n",
"- Using just the non-outlier rows, we will generate a 2 by 2 grid of histograms for the following columns:\n",
"\n",
" - population\n",
" - population_growth\n",
" - birth_rate\n",
" - death_rate"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline\n",
"\n",
"fig = plt.figure(figsize =(10, 5))\n",
"ax = fig.add_subplot(1, 1, 1)\n",
"\n",
"query4 = '''SELECT population, population_growth, \n",
"birth_rate, death_rate \n",
"FROM facts\n",
"WHERE population != 0 and population != 7256490011;'''\n",
"\n",
"pd.read_sql_query(query4, conn).hist(ax = ax)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Further Exploration\n",
"\n",
"***Which countries have the highest population density?***"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
name
\n",
"
population_density
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
Macau
\n",
"
21168.964286
\n",
"
\n",
"
\n",
"
1
\n",
"
Monaco
\n",
"
15267.500000
\n",
"
\n",
"
\n",
"
2
\n",
"
Singapore
\n",
"
8259.784571
\n",
"
\n",
"
\n",
"
3
\n",
"
Hong Kong
\n",
"
6655.271202
\n",
"
\n",
"
\n",
"
4
\n",
"
Gaza Strip
\n",
"
5191.819444
\n",
"
\n",
"
\n",
"
5
\n",
"
Gibraltar
\n",
"
4876.333333
\n",
"
\n",
"
\n",
"
6
\n",
"
Bahrain
\n",
"
1771.859211
\n",
"
\n",
"
\n",
"
7
\n",
"
Maldives
\n",
"
1319.640940
\n",
"
\n",
"
\n",
"
8
\n",
"
Malta
\n",
"
1310.015823
\n",
"
\n",
"
\n",
"
9
\n",
"
Bermuda
\n",
"
1299.925926
\n",
"
\n",
"
\n",
"
10
\n",
"
Bangladesh
\n",
"
1297.977606
\n",
"
\n",
"
\n",
"
11
\n",
"
Sint Maarten
\n",
"
1167.323529
\n",
"
\n",
"
\n",
"
12
\n",
"
Guernsey
\n",
"
847.179487
\n",
"
\n",
"
\n",
"
13
\n",
"
Jersey
\n",
"
838.741379
\n",
"
\n",
"
\n",
"
14
\n",
"
Taiwan
\n",
"
725.825356
\n",
"
\n",
"
\n",
"
15
\n",
"
Barbados
\n",
"
675.823256
\n",
"
\n",
"
\n",
"
16
\n",
"
Mauritius
\n",
"
660.013300
\n",
"
\n",
"
\n",
"
17
\n",
"
Aruba
\n",
"
623.122222
\n",
"
\n",
"
\n",
"
18
\n",
"
Lebanon
\n",
"
604.565103
\n",
"
\n",
"
\n",
"
19
\n",
"
Saint Martin
\n",
"
588.037037
\n",
"
\n",
"
\n",
"
20
\n",
"
San Marino
\n",
"
541.311475
\n",
"
\n",
"
\n",
"
21
\n",
"
Rwanda
\n",
"
513.285755
\n",
"
\n",
"
\n",
"
22
\n",
"
Korea, South
\n",
"
506.760173
\n",
"
\n",
"
\n",
"
23
\n",
"
Netherlands
\n",
"
500.041424
\n",
"
\n",
"
\n",
"
24
\n",
"
West Bank
\n",
"
493.859220
\n",
"
\n",
"
\n",
"
25
\n",
"
Nauru
\n",
"
454.285714
\n",
"
\n",
"
\n",
"
26
\n",
"
India
\n",
"
420.993721
\n",
"
\n",
"
\n",
"
27
\n",
"
Burundi
\n",
"
418.312928
\n",
"
\n",
"
\n",
"
28
\n",
"
Tuvalu
\n",
"
418.038462
\n",
"
\n",
"
\n",
"
29
\n",
"
Puerto Rico
\n",
"
405.677227
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
231
\n",
"
Greenland
\n",
"
0.026653
\n",
"
\n",
"
\n",
"
232
\n",
"
Antarctica
\n",
"
0.000000
\n",
"
\n",
"
\n",
"
233
\n",
"
Ethiopia
\n",
"
NaN
\n",
"
\n",
"
\n",
"
234
\n",
"
South Sudan
\n",
"
NaN
\n",
"
\n",
"
\n",
"
235
\n",
"
Sudan
\n",
"
NaN
\n",
"
\n",
"
\n",
"
236
\n",
"
Holy See (Vatican City)
\n",
"
NaN
\n",
"
\n",
"
\n",
"
237
\n",
"
European Union
\n",
"
NaN
\n",
"
\n",
"
\n",
"
238
\n",
"
Ashmore and Cartier Islands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
239
\n",
"
Coral Sea Islands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
240
\n",
"
Heard Island and McDonald Islands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
241
\n",
"
Clipperton Island
\n",
"
NaN
\n",
"
\n",
"
\n",
"
242
\n",
"
French Southern and Antarctic Lands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
243
\n",
"
Saint Barthelemy
\n",
"
NaN
\n",
"
\n",
"
\n",
"
244
\n",
"
Bouvet Island
\n",
"
NaN
\n",
"
\n",
"
\n",
"
245
\n",
"
Jan Mayen
\n",
"
NaN
\n",
"
\n",
"
\n",
"
246
\n",
"
Akrotiri
\n",
"
NaN
\n",
"
\n",
"
\n",
"
247
\n",
"
British Indian Ocean Territory
\n",
"
NaN
\n",
"
\n",
"
\n",
"
248
\n",
"
Dhekelia
\n",
"
NaN
\n",
"
\n",
"
\n",
"
249
\n",
"
South Georgia and South Sandwich Islands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
250
\n",
"
Navassa Island
\n",
"
NaN
\n",
"
\n",
"
\n",
"
251
\n",
"
Wake Island
\n",
"
NaN
\n",
"
\n",
"
\n",
"
252
\n",
"
United States Pacific Island Wildlife Refuges
\n",
"
NaN
\n",
"
\n",
"
\n",
"
253
\n",
"
Paracel Islands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
254
\n",
"
Spratly Islands
\n",
"
NaN
\n",
"
\n",
"
\n",
"
255
\n",
"
Arctic Ocean
\n",
"
NaN
\n",
"
\n",
"
\n",
"
256
\n",
"
Atlantic Ocean
\n",
"
NaN
\n",
"
\n",
"
\n",
"
257
\n",
"
Indian Ocean
\n",
"
NaN
\n",
"
\n",
"
\n",
"
258
\n",
"
Pacific Ocean
\n",
"
NaN
\n",
"
\n",
"
\n",
"
259
\n",
"
Southern Ocean
\n",
"
NaN
\n",
"
\n",
"
\n",
"
260
\n",
"
World
\n",
"
NaN
\n",
"
\n",
" \n",
"
\n",
"
261 rows × 2 columns
\n",
"
"
],
"text/plain": [
" name population_density\n",
"0 Macau 21168.964286\n",
"1 Monaco 15267.500000\n",
"2 Singapore 8259.784571\n",
"3 Hong Kong 6655.271202\n",
"4 Gaza Strip 5191.819444\n",
"5 Gibraltar 4876.333333\n",
"6 Bahrain 1771.859211\n",
"7 Maldives 1319.640940\n",
"8 Malta 1310.015823\n",
"9 Bermuda 1299.925926\n",
"10 Bangladesh 1297.977606\n",
"11 Sint Maarten 1167.323529\n",
"12 Guernsey 847.179487\n",
"13 Jersey 838.741379\n",
"14 Taiwan 725.825356\n",
"15 Barbados 675.823256\n",
"16 Mauritius 660.013300\n",
"17 Aruba 623.122222\n",
"18 Lebanon 604.565103\n",
"19 Saint Martin 588.037037\n",
"20 San Marino 541.311475\n",
"21 Rwanda 513.285755\n",
"22 Korea, South 506.760173\n",
"23 Netherlands 500.041424\n",
"24 West Bank 493.859220\n",
"25 Nauru 454.285714\n",
"26 India 420.993721\n",
"27 Burundi 418.312928\n",
"28 Tuvalu 418.038462\n",
"29 Puerto Rico 405.677227\n",
".. ... ...\n",
"231 Greenland 0.026653\n",
"232 Antarctica 0.000000\n",
"233 Ethiopia NaN\n",
"234 South Sudan NaN\n",
"235 Sudan NaN\n",
"236 Holy See (Vatican City) NaN\n",
"237 European Union NaN\n",
"238 Ashmore and Cartier Islands NaN\n",
"239 Coral Sea Islands NaN\n",
"240 Heard Island and McDonald Islands NaN\n",
"241 Clipperton Island NaN\n",
"242 French Southern and Antarctic Lands NaN\n",
"243 Saint Barthelemy NaN\n",
"244 Bouvet Island NaN\n",
"245 Jan Mayen NaN\n",
"246 Akrotiri NaN\n",
"247 British Indian Ocean Territory NaN\n",
"248 Dhekelia NaN\n",
"249 South Georgia and South Sandwich Islands NaN\n",
"250 Navassa Island NaN\n",
"251 Wake Island NaN\n",
"252 United States Pacific Island Wildlife Refuges NaN\n",
"253 Paracel Islands NaN\n",
"254 Spratly Islands NaN\n",
"255 Arctic Ocean NaN\n",
"256 Atlantic Ocean NaN\n",
"257 Indian Ocean NaN\n",
"258 Pacific Ocean NaN\n",
"259 Southern Ocean NaN\n",
"260 World NaN\n",
"\n",
"[261 rows x 2 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"query5 = '''SELECT name, cast(population as float)/cast(area_land as float) 'population_density' \n",
"FROM facts ORDER BY population_density desc'''\n",
"\n",
"pd.read_sql_query(query5, conn)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***Histogram of population densities.***"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"