In [ ]:

PEEWEE ORM

Here I will demonstrate how to use PEEWEE ORM to get the world bank data into a database.


In [1]:
from peewee import * 
from playhouse.postgres_ext import PostgresqlDatabase

import pandas as pd

from tqdm import tqdm
from os.path import join 

from time import sleep

from IPython import display
import matplotlib.pyplot as pl 
import seaborn as sns

%matplotlib inline

In [2]:
db = PostgresqlDatabase('ads')

class BaseModel(Model):
    class Meta:
        database = db

class Country(BaseModel): 
    id = PrimaryKeyField()
    
    name = CharField()
    
class LifeExpectancy(BaseModel):
    id = PrimaryKeyField()
    
    country = ForeignKeyField(
        Country, 
        index=True, 
        null=False, 
        related_name='life_expectancy', 
        on_delete='cascade'
    )
    
    year = IntegerField(null=False)
    value = FloatField(null=True)
    
class Population(BaseModel):
    id = PrimaryKeyField()
    
    country = ForeignKeyField(
        Country, 
        index=True, 
        null=False, 
        related_name='population', 
        on_delete='cascade'
    )
    
    year = IntegerField(null=False)
    value = FloatField(null=True)
    
class GDP(BaseModel):
    id = PrimaryKeyField()
    
    country = ForeignKeyField(
        Country, 
        index=True, 
        null=False, 
        related_name='gdp', 
        on_delete='cascade'
    )
    
    year = IntegerField(null=False)
    value = FloatField(null=True)
    
models = [
    Country, 
    LifeExpectancy, 
    Population, 
    GDP, 
]

In [ ]:


In [3]:
def rearrange_dataframe(df, indicator_name):
    country = 'Country Name'
    years = [c for c in df.columns if c[0] == '1' or c[0] == '2']
    df = pd.melt(df[[country] + years], id_vars=country, var_name='year')
    df.rename(columns={'value': indicator_name}, inplace=True)
    return df

db.drop_tables(models, safe=True, cascade=True)
db.create_tables(models, safe=True)

sources = [
    ('API_SP.DYN.LE00.IN_DS2_en_csv_v2_713010', 'Life expectency at birth', LifeExpectancy),
    ('API_SP.POP.TOTL_DS2_en_csv_v2_713131',    'Total population',         Population    ),
    ('API_NY.GDP.PCAP.CD_DS2_en_csv_v2_713080', 'GDP per capita',           GDP           ),
]

for source, key, model in sources: 
    df = rearrange_dataframe(pd.read_csv(join(source, '{}.csv'.format(source)), skiprows=4), key)
    print(df.head())
    
    for ri, row in tqdm(df.iterrows()):
        country, inserted = Country.get_or_create(name=row['Country Name'])
        
        model.create(
            country=country, 
            year=int(row['year']), 
            value=row[key]
        )
        
        # For faster insersion, the insert_many method may be used.


13it [00:00, 122.36it/s]
  Country Name  year  Life expectency at birth
0        Aruba  1960                    65.662
1  Afghanistan  1960                    32.446
2       Angola  1960                    37.524
3      Albania  1960                    62.283
4      Andorra  1960                       NaN
15840it [01:03, 250.28it/s]
32it [00:00, 317.95it/s]
  Country Name  year  Total population
0        Aruba  1960           54211.0
1  Afghanistan  1960         8996973.0
2       Angola  1960         5454933.0
3      Albania  1960         1608800.0
4      Andorra  1960           13411.0
15840it [01:02, 252.98it/s]
44it [00:00, 432.96it/s]
  Country Name  year  GDP per capita
0        Aruba  1960             NaN
1  Afghanistan  1960       59.773194
2       Angola  1960             NaN
3      Albania  1960             NaN
4      Andorra  1960             NaN
15840it [01:06, 236.83it/s]

In [5]:
#GDP.select().count()
print(GDP.select())
#type(lq[0])
#lq[0].value
#lq[0]


SELECT "t1"."id", "t1"."country_id", "t1"."year", "t1"."value" FROM "gdp" AS "t1"

In [6]:
q = GDP.select().limit(10)

print(q)

lq = list(q)
print(lq)
print(lq[0])
print(lq[0].country.name)


SELECT "t1"."id", "t1"."country_id", "t1"."year", "t1"."value" FROM "gdp" AS "t1" LIMIT 10
[<GDP: 1>, <GDP: 2>, <GDP: 3>, <GDP: 4>, <GDP: 5>, <GDP: 6>, <GDP: 7>, <GDP: 8>, <GDP: 9>, <GDP: 10>]
1
Aruba

In [8]:
c1 = Country.select().where(Country.id == 110).get()

c1.name


Out[8]:
'Ireland'

In [9]:
list(Population.select().dicts())


Out[9]:
[{'id': 1, 'country': 1, 'year': 1960, 'value': 54211.0},
 {'id': 2, 'country': 2, 'year': 1960, 'value': 8996970.0},
 {'id': 3, 'country': 3, 'year': 1960, 'value': 5454930.0},
 {'id': 4, 'country': 4, 'year': 1960, 'value': 1608800.0},
 {'id': 5, 'country': 5, 'year': 1960, 'value': 13411.0},
 {'id': 6, 'country': 6, 'year': 1960, 'value': 92197800.0},
 {'id': 7, 'country': 7, 'year': 1960, 'value': 92418.0},
 {'id': 8, 'country': 8, 'year': 1960, 'value': 20481800.0},
 {'id': 9, 'country': 9, 'year': 1960, 'value': 1874120.0},
 {'id': 10, 'country': 10, 'year': 1960, 'value': 20123.0},
 {'id': 11, 'country': 11, 'year': 1960, 'value': 54131.0},
 {'id': 12, 'country': 12, 'year': 1960, 'value': 10276500.0},
 {'id': 13, 'country': 13, 'year': 1960, 'value': 7047540.0},
 {'id': 14, 'country': 14, 'year': 1960, 'value': 3895400.0},
 {'id': 15, 'country': 15, 'year': 1960, 'value': 2797930.0},
 {'id': 16, 'country': 16, 'year': 1960, 'value': 9153490.0},
 {'id': 17, 'country': 17, 'year': 1960, 'value': 2431620.0},
 {'id': 18, 'country': 18, 'year': 1960, 'value': 4829290.0},
 {'id': 19, 'country': 19, 'year': 1960, 'value': 48013500.0},
 {'id': 20, 'country': 20, 'year': 1960, 'value': 7867370.0},
 {'id': 21, 'country': 21, 'year': 1960, 'value': 162427.0},
 {'id': 22, 'country': 22, 'year': 1960, 'value': 109534.0},
 {'id': 23, 'country': 23, 'year': 1960, 'value': 3225670.0},
 {'id': 24, 'country': 24, 'year': 1960, 'value': 8198000.0},
 {'id': 25, 'country': 25, 'year': 1960, 'value': 92064.0},
 {'id': 26, 'country': 26, 'year': 1960, 'value': 44400.0},
 {'id': 27, 'country': 27, 'year': 1960, 'value': 3656960.0},
 {'id': 28, 'country': 28, 'year': 1960, 'value': 72179200.0},
 {'id': 29, 'country': 29, 'year': 1960, 'value': 230980.0},
 {'id': 30, 'country': 30, 'year': 1960, 'value': 81702.0},
 {'id': 31, 'country': 31, 'year': 1960, 'value': 223288.0},
 {'id': 32, 'country': 32, 'year': 1960, 'value': 502745.0},
 {'id': 33, 'country': 33, 'year': 1960, 'value': 1501670.0},
 {'id': 34, 'country': 34, 'year': 1960, 'value': 17909000.0},
 {'id': 35, 'country': 35, 'year': 1960, 'value': 91401800.0},
 {'id': 36, 'country': 36, 'year': 1960, 'value': 5327830.0},
 {'id': 37, 'country': 37, 'year': 1960, 'value': 109420.0},
 {'id': 38, 'country': 38, 'year': 1960, 'value': 8132990.0},
 {'id': 39, 'country': 39, 'year': 1960, 'value': 667070000.0},
 {'id': 40, 'country': 40, 'year': 1960, 'value': 3503550.0},
 {'id': 41, 'country': 41, 'year': 1960, 'value': 5176920.0},
 {'id': 42, 'country': 42, 'year': 1960, 'value': 15248300.0},
 {'id': 43, 'country': 43, 'year': 1960, 'value': 1018250.0},
 {'id': 44, 'country': 44, 'year': 1960, 'value': 16057700.0},
 {'id': 45, 'country': 45, 'year': 1960, 'value': 191121.0},
 {'id': 46, 'country': 46, 'year': 1960, 'value': 201765.0},
 {'id': 47, 'country': 47, 'year': 1960, 'value': 1330780.0},
 {'id': 48, 'country': 48, 'year': 1960, 'value': 4194710.0},
 {'id': 49, 'country': 49, 'year': 1960, 'value': 7141250.0},
 {'id': 50, 'country': 50, 'year': 1960, 'value': 124826.0},
 {'id': 51, 'country': 51, 'year': 1960, 'value': 7865.0},
 {'id': 52, 'country': 52, 'year': 1960, 'value': 572930.0},
 {'id': 53, 'country': 53, 'year': 1960, 'value': 9602010.0},
 {'id': 54, 'country': 54, 'year': 1960, 'value': 72814900.0},
 {'id': 55, 'country': 55, 'year': 1960, 'value': 83636.0},
 {'id': 56, 'country': 56, 'year': 1960, 'value': 60011.0},
 {'id': 57, 'country': 57, 'year': 1960, 'value': 4579600.0},
 {'id': 58, 'country': 58, 'year': 1960, 'value': 3294220.0},
 {'id': 59, 'country': 59, 'year': 1960, 'value': 11057900.0},
 {'id': 60, 'country': 60, 'year': 1960, 'value': 894880000.0},
 {'id': 61, 'country': 61, 'year': 1960, 'value': 980085000.0},
 {'id': 62, 'country': 62, 'year': 1960, 'value': 1040960000.0},
 {'id': 63, 'country': 63, 'year': 1960, 'value': 275148000.0},
 {'id': 64, 'country': 64, 'year': 1960, 'value': 667254000.0},
 {'id': 65, 'country': 65, 'year': 1960, 'value': 4543670.0},
 {'id': 66, 'country': 66, 'year': 1960, 'value': 26632900.0},
 {'id': 67, 'country': 67, 'year': 1960, 'value': 265204000.0},
 {'id': 68, 'country': 68, 'year': 1960, 'value': 1007590.0},
 {'id': 69, 'country': 69, 'year': 1960, 'value': 30455000.0},
 {'id': 70, 'country': 70, 'year': 1960, 'value': 1211540.0},
 {'id': 71, 'country': 71, 'year': 1960, 'value': 22151300.0},
 {'id': 72, 'country': 72, 'year': 1960, 'value': 409306000.0},
 {'id': 73, 'country': 73, 'year': 1960, 'value': 120335000.0},
 {'id': 74, 'country': 74, 'year': 1960, 'value': 4429630.0},
 {'id': 75, 'country': 75, 'year': 1960, 'value': 393481.0},
 {'id': 76, 'country': 76, 'year': 1960, 'value': 46621700.0},
 {'id': 77, 'country': 77, 'year': 1960, 'value': 34615.0},
 {'id': 78, 'country': 78, 'year': 1960, 'value': 44514.0},
 {'id': 79, 'country': 79, 'year': 1960, 'value': 500928.0},
 {'id': 80, 'country': 80, 'year': 1960, 'value': 52400000.0},
 {'id': 81, 'country': 81, 'year': 1960, 'value': 3645600.0},
 {'id': 82, 'country': 82, 'year': 1960, 'value': 6635230.0},
 {'id': 83, 'country': 83, 'year': 1960, 'value': 23420.0},
 {'id': 84, 'country': 84, 'year': 1960, 'value': 3494160.0},
 {'id': 85, 'country': 85, 'year': 1960, 'value': 365047.0},
 {'id': 86, 'country': 86, 'year': 1960, 'value': 616136.0},
 {'id': 87, 'country': 87, 'year': 1960, 'value': 255333.0},
 {'id': 88, 'country': 88, 'year': 1960, 'value': 8331720.0},
 {'id': 89, 'country': 89, 'year': 1960, 'value': 89932.0},
 {'id': 90, 'country': 90, 'year': 1960, 'value': 32500.0},
 {'id': 91, 'country': 91, 'year': 1960, 'value': 4210750.0},
 {'id': 92, 'country': 92, 'year': 1960, 'value': 66742.0},
 {'id': 93, 'country': 93, 'year': 1960, 'value': 571819.0},
 {'id': 94, 'country': 94, 'year': 1960, 'value': 760194000.0},
 {'id': 95, 'country': 95, 'year': 1960, 'value': 3075600.0},
 {'id': 96, 'country': 96, 'year': 1960, 'value': 2038630.0},
 {'id': 97, 'country': 97, 'year': 1960, 'value': 161734000.0},
 {'id': 98, 'country': 98, 'year': 1960, 'value': 4140180.0},
 {'id': 99, 'country': 99, 'year': 1960, 'value': 3866160.0},
 {'id': 100, 'country': 100, 'year': 1960, 'value': 9983970.0},
 {'id': 101, 'country': 101, 'year': 1960, 'value': 1916730000.0},
 {'id': 102, 'country': 102, 'year': 1960, 'value': 2299830000.0},
 {'id': 103, 'country': 103, 'year': 1960, 'value': 383102000.0},
 {'id': 104, 'country': 104, 'year': 1960, 'value': 123891000.0},
 {'id': 105, 'country': 105, 'year': 1960, 'value': 87751100.0},
 {'id': 106, 'country': 106, 'year': 1960, 'value': 259210000.0},
 {'id': 107, 'country': 107, 'year': 1960, 'value': 48442.0},
 {'id': 108, 'country': 108, 'year': 1960, 'value': 450548000.0},
 {'id': 109, 'country': 109, 'year': 1960, 'value': nan},
 {'id': 110, 'country': 110, 'year': 1960, 'value': 2828600.0},
 {'id': 111, 'country': 111, 'year': 1960, 'value': 21906900.0},
 {'id': 112, 'country': 112, 'year': 1960, 'value': 7289760.0},
 {'id': 113, 'country': 113, 'year': 1960, 'value': 175574.0},
 {'id': 114, 'country': 114, 'year': 1960, 'value': 2114020.0},
 {'id': 115, 'country': 115, 'year': 1960, 'value': 50199700.0},
 {'id': 116, 'country': 116, 'year': 1960, 'value': 1628520.0},
 {'id': 117, 'country': 117, 'year': 1960, 'value': 933102.0},
 {'id': 118, 'country': 118, 'year': 1960, 'value': 92500600.0},
 {'id': 119, 'country': 119, 'year': 1960, 'value': 9934560.0},
 {'id': 120, 'country': 120, 'year': 1960, 'value': 8120080.0},
 {'id': 121, 'country': 121, 'year': 1960, 'value': 2172300.0},
 {'id': 122, 'country': 122, 'year': 1960, 'value': 5722370.0},
 {'id': 123, 'country': 123, 'year': 1960, 'value': 41202.0},
 {'id': 124, 'country': 124, 'year': 1960, 'value': 51195.0},
 {'id': 125, 'country': 125, 'year': 1960, 'value': 25012400.0},
 {'id': 126, 'country': 126, 'year': 1960, 'value': 269029.0},
 {'id': 127, 'country': 127, 'year': 1960, 'value': 204214000.0},
 {'id': 128, 'country': 128, 'year': 1960, 'value': 2120900.0},
 {'id': 129, 'country': 129, 'year': 1960, 'value': 1804940.0},
 {'id': 130, 'country': 130, 'year': 1960, 'value': 1118660.0},
 {'id': 131, 'country': 131, 'year': 1960, 'value': 1448420.0},
 {'id': 132, 'country': 132, 'year': 1960, 'value': 89697.0},
 {'id': 133, 'country': 133, 'year': 1960, 'value': 219908000.0},
 {'id': 134, 'country': 134, 'year': 1960, 'value': 240518000.0},
 {'id': 135, 'country': 135, 'year': 1960, 'value': 158780000.0},
 {'id': 136, 'country': 136, 'year': 1960, 'value': 16493.0},
 {'id': 137, 'country': 137, 'year': 1960, 'value': 9874480.0},
 {'id': 138, 'country': 138, 'year': 1960, 'value': 928490000.0},
 {'id': 139, 'country': 139, 'year': 1960, 'value': 2271830000.0},
 {'id': 140, 'country': 140, 'year': 1960, 'value': 837270.0},
 {'id': 141, 'country': 141, 'year': 1960, 'value': 1097400000.0},
 {'id': 142, 'country': 142, 'year': 1960, 'value': 2778550.0},
 {'id': 143, 'country': 143, 'year': 1960, 'value': 313970.0},
 {'id': 144, 'country': 144, 'year': 1960, 'value': 2120980.0},
 {'id': 145, 'country': 145, 'year': 1960, 'value': 167791.0},
 {'id': 146, 'country': 146, 'year': 1960, 'value': 3893.0},
 {'id': 147, 'country': 147, 'year': 1960, 'value': 12328500.0},
 {'id': 148, 'country': 148, 'year': 1960, 'value': 22452.0},
 {'id': 149, 'country': 149, 'year': 1960, 'value': 2544000.0},
 {'id': 150, 'country': 150, 'year': 1960, 'value': 5099370.0},
 {'id': 151, 'country': 151, 'year': 1960, 'value': 89863.0},
 {'id': 152, 'country': 152, 'year': 1960, 'value': 105203000.0},
 {'id': 153, 'country': 153, 'year': 1960, 'value': 37771900.0},
 {'id': 154, 'country': 154, 'year': 1960, 'value': 14662.0},
 {'id': 155, 'country': 155, 'year': 1960, 'value': 2113050000.0},
 {'id': 156, 'country': 156, 'year': 1960, 'value': 1488670.0},
 {'id': 157, 'country': 157, 'year': 1960, 'value': 5263730.0},
 {'id': 158, 'country': 158, 'year': 1960, 'value': 326550.0},
 {'id': 159, 'country': 159, 'year': 1960, 'value': 21736900.0},
 {'id': 160, 'country': 160, 'year': 1960, 'value': 97553200.0},
 {'id': 161, 'country': 161, 'year': 1960, 'value': 480579.0},
 {'id': 162, 'country': 162, 'year': 1960, 'value': 955505.0},
 {'id': 163, 'country': 163, 'year': 1960, 'value': 9979.0},
 {'id': 164, 'country': 164, 'year': 1960, 'value': 7184870.0},
 {'id': 165, 'country': 165, 'year': 1960, 'value': 850384.0},
 {'id': 166, 'country': 166, 'year': 1960, 'value': 659351.0},
 {'id': 167, 'country': 167, 'year': 1960, 'value': 3659980.0},
 {'id': 168, 'country': 168, 'year': 1960, 'value': 8156350.0},
 {'id': 169, 'country': 169, 'year': 1960, 'value': 198624000.0},
 {'id': 170, 'country': 170, 'year': 1960, 'value': 634142.0},
 {'id': 171, 'country': 171, 'year': 1960, 'value': 79000.0},
 {'id': 172, 'country': 172, 'year': 1960, 'value': 3388760.0},
 {'id': 173, 'country': 173, 'year': 1960, 'value': 45138500.0},
 {'id': 174, 'country': 174, 'year': 1960, 'value': 1773130.0},
 {'id': 175, 'country': 175, 'year': 1960, 'value': 11486600.0},
 {'id': 176, 'country': 176, 'year': 1960, 'value': 3581240.0},
 {'id': 177, 'country': 177, 'year': 1960, 'value': 10105000.0},
 {'id': 178, 'country': 178, 'year': 1960, 'value': 4375.0},
 {'id': 179, 'country': 179, 'year': 1960, 'value': 2371800.0},
 {'id': 180, 'country': 180, 'year': 1960, 'value': 791309000.0},
 {'id': 181, 'country': 181, 'year': 1960, 'value': 551740.0},
 {'id': 182, 'country': 182, 'year': 1960, 'value': 9151860.0},
 {'id': 183, 'country': 183, 'year': 1960, 'value': 44988700.0},
 {'id': 184, 'country': 184, 'year': 1960, 'value': 1133000.0},
 {'id': 185, 'country': 185, 'year': 1960, 'value': 10155000.0},
 {'id': 186, 'country': 186, 'year': 1960, 'value': 26269700.0},
 {'id': 187, 'country': 187, 'year': 1960, 'value': 9771.0},
 {'id': 188, 'country': 188, 'year': 1960, 'value': 2255860.0},
 {'id': 189, 'country': 189, 'year': 1960, 'value': 29637400.0},
 {'id': 190, 'country': 190, 'year': 1960, 'value': 187617000.0},
 {'id': 191, 'country': 191, 'year': 1960, 'value': 2358000.0},
 {'id': 192, 'country': 192, 'year': 1960, 'value': 11424200.0},
 {'id': 193, 'country': 193, 'year': 1960, 'value': 8857720.0},
 {'id': 194, 'country': 194, 'year': 1960, 'value': 1903980.0},
 {'id': 195, 'country': 195, 'year': 1960, 'value': nan},
 {'id': 196, 'country': 196, 'year': 1960, 'value': 865072.0},
 {'id': 197, 'country': 197, 'year': 1960, 'value': 754514000.0},
 {'id': 198, 'country': 198, 'year': 1960, 'value': 78076.0},
 {'id': 199, 'country': 199, 'year': 1960, 'value': 47384.0},
 {'id': 200, 'country': 200, 'year': 1960, 'value': 18406900.0},
 {'id': 201, 'country': 201, 'year': 1960, 'value': 119897000.0},
 {'id': 202, 'country': 202, 'year': 1960, 'value': 2935580.0},
 {'id': 203, 'country': 203, 'year': 1960, 'value': 572840000.0},
 {'id': 204, 'country': 204, 'year': 1960, 'value': 4086540.0},
 {'id': 205, 'country': 205, 'year': 1960, 'value': 7544490.0},
 {'id': 206, 'country': 206, 'year': 1960, 'value': 3206750.0},
 {'id': 207, 'country': 207, 'year': 1960, 'value': 1646400.0},
 {'id': 208, 'country': 208, 'year': 1960, 'value': 117849.0},
 {'id': 209, 'country': 209, 'year': 1960, 'value': 2317640.0},
 {'id': 210, 'country': 210, 'year': 1960, 'value': 2766320.0},
 {'id': 211, 'country': 211, 'year': 1960, 'value': 15432.0},
 {'id': 212, 'country': 212, 'year': 1960, 'value': 2755970.0},
 {'id': 213, 'country': 213, 'year': 1960, 'value': nan},
 {'id': 214, 'country': 214, 'year': 1960, 'value': 227192000.0},
 {'id': 215, 'country': 215, 'year': 1960, 'value': 2842720.0},
 {'id': 216, 'country': 216, 'year': 1960, 'value': 227233000.0},
 {'id': 217, 'country': 217, 'year': 1960, 'value': 14211600.0},
 {'id': 218, 'country': 218, 'year': 1960, 'value': 64302.0},
 {'id': 219, 'country': 219, 'year': 1960, 'value': 287871.0},
 {'id': 220, 'country': 220, 'year': 1960, 'value': 4068100.0},
 {'id': 221, 'country': 221, 'year': 1960, 'value': 1584720.0},
 {'id': 222, 'country': 222, 'year': 1960, 'value': 7484660.0},
 {'id': 223, 'country': 223, 'year': 1960, 'value': 336583.0},
 {'id': 224, 'country': 224, 'year': 1960, 'value': nan},
 {'id': 225, 'country': 225, 'year': 1960, 'value': 41700.0},
 {'id': 226, 'country': 226, 'year': 1960, 'value': 4573510.0},
 {'id': 227, 'country': 227, 'year': 1960, 'value': 5824.0},
 {'id': 228, 'country': 228, 'year': 1960, 'value': 3001610.0},
 {'id': 229, 'country': 229, 'year': 1960, 'value': 883446000.0},
 {'id': 230, 'country': 230, 'year': 1960, 'value': 308925000.0},
 {'id': 231, 'country': 231, 'year': 1960, 'value': 1580510.0},
 {'id': 232, 'country': 232, 'year': 1960, 'value': 27397200.0},
 {'id': 233, 'country': 233, 'year': 1960, 'value': 2087050.0},
 {'id': 234, 'country': 234, 'year': 1960, 'value': 1603260.0},
 {'id': 235, 'country': 235, 'year': 1960, 'value': 209831000.0},
 {'id': 236, 'country': 236, 'year': 1960, 'value': 474532.0},
 {'id': 237, 'country': 237, 'year': 1960, 'value': 97553200.0},
 {'id': 238, 'country': 238, 'year': 1960, 'value': 61577.0},
 {'id': 239, 'country': 239, 'year': 1960, 'value': 572840000.0},
 {'id': 240, 'country': 240, 'year': 1960, 'value': 227233000.0},
 {'id': 241, 'country': 241, 'year': 1960, 'value': 847979.0},
 {'id': 242, 'country': 242, 'year': 1960, 'value': 4178240.0},
 {'id': 243, 'country': 243, 'year': 1960, 'value': 27472300.0},
 {'id': 244, 'country': 244, 'year': 1960, 'value': 5323.0},
 {'id': 245, 'country': 245, 'year': 1960, 'value': 10052200.0},
 {'id': 246, 'country': 246, 'year': 1960, 'value': 6767100.0},
 {'id': 247, 'country': 247, 'year': 1960, 'value': 42664700.0},
 {'id': 248, 'country': 248, 'year': 1960, 'value': 1184560000.0},
 {'id': 249, 'country': 249, 'year': 1960, 'value': 2538640.0},
 {'id': 250, 'country': 250, 'year': 1960, 'value': 180671000.0},
 {'id': 251, 'country': 251, 'year': 1960, 'value': 8526300.0},
 {'id': 252, 'country': 252, 'year': 1960, 'value': 80977.0},
 {'id': 253, 'country': 253, 'year': 1960, 'value': 8141840.0},
 {'id': 254, 'country': 254, 'year': 1960, 'value': 8048.0},
 {'id': 255, 'country': 255, 'year': 1960, 'value': 32500.0},
 {'id': 256, 'country': 256, 'year': 1960, 'value': 32670000.0},
 {'id': 257, 'country': 257, 'year': 1960, 'value': 63689.0},
 {'id': 258, 'country': 258, 'year': 1960, 'value': 3032020000.0},
 {'id': 259, 'country': 259, 'year': 1960, 'value': 108629.0},
 {'id': 260, 'country': 260, 'year': 1960, 'value': 947000.0},
 {'id': 261, 'country': 261, 'year': 1960, 'value': 5315360.0},
 {'id': 262, 'country': 262, 'year': 1960, 'value': 17099800.0},
 {'id': 263, 'country': 263, 'year': 1960, 'value': 3070780.0},
 {'id': 264, 'country': 264, 'year': 1960, 'value': 3776680.0},
 {'id': 265, 'country': 1, 'year': 1961, 'value': 55438.0},
 {'id': 266, 'country': 2, 'year': 1961, 'value': 9169410.0},
 {'id': 267, 'country': 3, 'year': 1961, 'value': 5531470.0},
 {'id': 268, 'country': 4, 'year': 1961, 'value': 1659800.0},
 {'id': 269, 'country': 5, 'year': 1961, 'value': 14375.0},
 {'id': 270, 'country': 6, 'year': 1961, 'value': 94724500.0},
 {'id': 271, 'country': 7, 'year': 1961, 'value': 100796.0},
 {'id': 272, 'country': 8, 'year': 1961, 'value': 20817300.0},
 {'id': 273, 'country': 9, 'year': 1961, 'value': 1941490.0},
 {'id': 274, 'country': 10, 'year': 1961, 'value': 20602.0},
 {'id': 275, 'country': 11, 'year': 1961, 'value': 55001.0},
 {'id': 276, 'country': 12, 'year': 1961, 'value': 10483000.0},
 {'id': 277, 'country': 13, 'year': 1961, 'value': 7086300.0},
 {'id': 278, 'country': 14, 'year': 1961, 'value': 4030320.0},
 {'id': 279, 'country': 15, 'year': 1961, 'value': 2852440.0},
 {'id': 280, 'country': 16, 'year': 1961, 'value': 9183950.0},
 {'id': 281, 'country': 17, 'year': 1961, 'value': 2465870.0},
 {'id': 282, 'country': 18, 'year': 1961, 'value': 4894580.0},
 {'id': 283, 'country': 19, 'year': 1961, 'value': 49362800.0},
 {'id': 284, 'country': 20, 'year': 1961, 'value': 7943120.0},
 {'id': 285, 'country': 21, 'year': 1961, 'value': 167894.0},
 {'id': 286, 'country': 22, 'year': 1961, 'value': 115121.0},
 {'id': 287, 'country': 23, 'year': 1961, 'value': 3288600.0},
 {'id': 288, 'country': 24, 'year': 1961, 'value': 8271220.0},
 {'id': 289, 'country': 25, 'year': 1961, 'value': 94703.0},
 {'id': 290, 'country': 26, 'year': 1961, 'value': 45500.0},
 {'id': 291, 'country': 27, 'year': 1961, 'value': 3728960.0},
 {'id': 292, 'country': 28, 'year': 1961, 'value': 74311300.0},
 {'id': 293, 'country': 29, 'year': 1961, 'value': 231718.0},
 {'id': 294, 'country': 30, 'year': 1961, 'value': 85562.0},
 {'id': 295, 'country': 31, 'year': 1961, 'value': 228851.0},
 {'id': 296, 'country': 32, 'year': 1961, 'value': 512685.0},
 {'id': 297, 'country': 33, 'year': 1961, 'value': 1526070.0},
 {'id': 298, 'country': 34, 'year': 1961, 'value': 18271000.0},
 {'id': 299, 'country': 35, 'year': 1961, 'value': 92232700.0},
 {'id': 300, 'country': 36, 'year': 1961, 'value': 5434290.0},
 {'id': 301, 'country': 37, 'year': 1961, 'value': 110399.0},
 {'id': 302, 'country': 38, 'year': 1961, 'value': 8303810.0},
 {'id': 303, 'country': 39, 'year': 1961, 'value': 660330000.0},
 {'id': 304, 'country': 40, 'year': 1961, 'value': 3631550.0},
 {'id': 305, 'country': 41, 'year': 1961, 'value': 5285020.0},
 {'id': 306, 'country': 42, 'year': 1961, 'value': 15637700.0},
 {'id': 307, 'country': 43, 'year': 1961, 'value': 1043120.0},
 {'id': 308, 'country': 44, 'year': 1961, 'value': 16567800.0},
 {'id': 309, 'country': 45, 'year': 1961, 'value': 194139.0},
 {'id': 310, 'country': 46, 'year': 1961, 'value': 205327.0},
 {'id': 311, 'country': 47, 'year': 1961, 'value': 1381180.0},
 {'id': 312, 'country': 48, 'year': 1961, 'value': 4274060.0},
 {'id': 313, 'country': 49, 'year': 1961, 'value': 7291200.0},
 {'id': 314, 'country': 50, 'year': 1961, 'value': 126125.0},
 {'id': 315, 'country': 51, 'year': 1961, 'value': 8026.0},
 {'id': 316, 'country': 52, 'year': 1961, 'value': 576395.0},
 {'id': 317, 'country': 53, 'year': 1961, 'value': 9586650.0},
 {'id': 318, 'country': 54, 'year': 1961, 'value': 73377600.0},
 {'id': 319, 'country': 55, 'year': 1961, 'value': 88498.0},
 {'id': 320, 'country': 56, 'year': 1961, 'value': 61032.0},
 {'id': 321, 'country': 57, 'year': 1961, 'value': 4611690.0},
 {'id': 322, 'country': 58, 'year': 1961, 'value': 3406280.0},
 {'id': 323, 'country': 59, 'year': 1961, 'value': 11336300.0},
 {'id': 324, 'country': 60, 'year': 1961, 'value': 894484000.0},
 {'id': 325, 'country': 61, 'year': 1961, 'value': 1003280000.0},
 {'id': 326, 'country': 62, 'year': 1961, 'value': 1044540000.0},
 {'id': 327, 'country': 63, 'year': 1961, 'value': 279444000.0},
 {'id': 328, 'country': 64, 'year': 1961, 'value': 674963000.0},
 {'id': 329, 'country': 65, 'year': 1961, 'value': 4674170.0},
 {'id': 330, 'country': 66, 'year': 1961, 'value': 27366200.0},
 {'id': 331, 'country': 67, 'year': 1961, 'value': 267621000.0},
 {'id': 332, 'country': 68, 'year': 1961, 'value': 1033330.0},
 {'id': 333, 'country': 69, 'year': 1961, 'value': 30739200.0},
 {'id': 334, 'country': 70, 'year': 1961, 'value': 1225080.0},
 {'id': 335, 'country': 71, 'year': 1961, 'value': 22671200.0},
 {'id': 336, 'country': 72, 'year': 1961, 'value': 412798000.0},
 {'id': 337, 'country': 73, 'year': 1961, 'value': 123103000.0},
 {'id': 338, 'country': 74, 'year': 1961, 'value': 4461000.0},
 {'id': 339, 'country': 75, 'year': 1961, 'value': 407249.0},
 {'id': 340, 'country': 76, 'year': 1961, 'value': 47240500.0},
 {'id': 341, 'country': 77, 'year': 1961, 'value': 35076.0},
 {'id': 342, 'country': 78, 'year': 1961, 'value': 45932.0},
 {'id': 343, 'country': 79, 'year': 1961, 'value': 505799.0},
 {'id': 344, 'country': 80, 'year': 1961, 'value': 52800000.0},
 {'id': 345, 'country': 81, 'year': 1961, 'value': 3703600.0},
 {'id': 346, 'country': 82, 'year': 1961, 'value': 6848300.0},
 {'id': 347, 'country': 83, 'year': 1961, 'value': 23813.0},
 {'id': 348, 'country': 84, 'year': 1961, 'value': 3552060.0},
 {'id': 349, 'country': 85, 'year': 1961, 'value': 372445.0},
 {'id': 350, 'country': 86, 'year': 1961, 'value': 622761.0},
 {'id': 351, 'country': 87, 'year': 1961, 'value': 258791.0},
 {'id': 352, 'country': 88, 'year': 1961, 'value': 8398050.0},
 {'id': 353, 'country': 89, 'year': 1961, 'value': 91327.0},
 {'id': 354, 'country': 90, 'year': 1961, 'value': 33700.0},
 {'id': 355, 'country': 91, 'year': 1961, 'value': 4336140.0},
 {'id': 356, 'country': 92, 'year': 1961, 'value': 68072.0},
 {'id': 357, 'country': 93, 'year': 1961, 'value': 589274.0},
 {'id': 358, 'country': 94, 'year': 1961, 'value': 771547000.0},
 {'id': 359, 'country': 95, 'year': 1961, 'value': 3168100.0},
 {'id': 360, 'country': 96, 'year': 1961, 'value': 2096410.0},
 {'id': 361, 'country': 97, 'year': 1961, 'value': 165573000.0},
 {'id': 362, 'country': 98, 'year': 1961, 'value': 4167290.0},
 {'id': 363, 'country': 99, 'year': 1961, 'value': 3941940.0},
 {'id': 364, 'country': 100, 'year': 1961, 'value': 10029300.0},
 {'id': 365, 'country': 101, 'year': 1961, 'value': 1937370000.0},
 {'id': 366, 'country': 102, 'year': 1961, 'value': 2329750000.0},
 {'id': 367, 'country': 103, 'year': 1961, 'value': 392385000.0},
 {'id': 368, 'country': 104, 'year': 1961, 'value': 126858000.0},
 {'id': 369, 'country': 105, 'year': 1961, 'value': 90098400.0},
 {'id': 370, 'country': 106, 'year': 1961, 'value': 265527000.0},
 {'id': 371, 'country': 107, 'year': 1961, 'value': 48281.0},
 {'id': 372, 'country': 108, 'year': 1961, 'value': 459642000.0},
 {'id': 373, 'country': 109, 'year': 1961, 'value': nan},
 {'id': 374, 'country': 110, 'year': 1961, 'value': 2824400.0},
 {'id': 375, 'country': 111, 'year': 1961, 'value': 22480400.0},
 {'id': 376, 'country': 112, 'year': 1961, 'value': 7475350.0},
 {'id': 377, 'country': 113, 'year': 1961, 'value': 179029.0},
 {'id': 378, 'country': 114, 'year': 1961, 'value': 2185000.0},
 {'id': 379, 'country': 115, 'year': 1961, 'value': 50536400.0},
 {'id': 380, 'country': 116, 'year': 1961, 'value': 1651070.0},
 {'id': 381, 'country': 117, 'year': 1961, 'value': 973988.0},
 {'id': 382, 'country': 118, 'year': 1961, 'value': 94943000.0},
 {'id': 383, 'country': 119, 'year': 1961, 'value': 10349400.0},
 {'id': 384, 'country': 120, 'year': 1961, 'value': 8377700.0},
 {'id': 385, 'country': 121, 'year': 1961, 'value': 2255900.0},
 {'id': 386, 'country': 122, 'year': 1961, 'value': 5872970.0},
 {'id': 387, 'country': 123, 'year': 1961, 'value': 42229.0},
 {'id': 388, 'country': 124, 'year': 1961, 'value': 51192.0},
 {'id': 389, 'country': 125, 'year': 1961, 'value': 25765700.0},
 {'id': 390, 'country': 126, 'year': 1961, 'value': 300576.0},
 {'id': 391, 'country': 127, 'year': 1961, 'value': 209992000.0},
 {'id': 392, 'country': 128, 'year': 1961, 'value': 2170340.0},
 {'id': 393, 'country': 129, 'year': 1961, 'value': 1864620.0},
 {'id': 394, 'country': 130, 'year': 1961, 'value': 1142300.0},
 {'id': 395, 'country': 131, 'year': 1961, 'value': 1498070.0},
 {'id': 396, 'country': 132, 'year': 1961, 'value': 90716.0},
 {'id': 397, 'country': 133, 'year': 1961, 'value': 225994000.0},
 {'id': 398, 'country': 134, 'year': 1961, 'value': 246114000.0},
 {'id': 399, 'country': 135, 'year': 1961, 'value': 162260000.0},
 {'id': 400, 'country': 136, 'year': 1961, 'value': 16893.0},
 {'id': 401, 'country': 137, 'year': 1961, 'value': 10111600.0},
 {'id': 402, 'country': 138, 'year': 1961, 'value': 949754000.0},
 {'id': 403, 'country': 139, 'year': 1961, 'value': 2301530000.0},
 {'id': 404, 'country': 140, 'year': 1961, 'value': 852890.0},
 {'id': 405, 'country': 141, 'year': 1961, 'value': 1099800000.0},
 {'id': 406, 'country': 142, 'year': 1961, 'value': 2823550.0},
 {'id': 407, 'country': 143, 'year': 1961, 'value': 316845.0},
 {'id': 408, 'country': 144, 'year': 1961, 'value': 2152680.0},
 {'id': 409, 'country': 145, 'year': 1961, 'value': 170462.0},
 {'id': 410, 'country': 146, 'year': 1961, 'value': 3989.0},
 {'id': 411, 'country': 147, 'year': 1961, 'value': 12710600.0},
 {'id': 412, 'country': 148, 'year': 1961, 'value': 22808.0},
 {'id': 413, 'country': 149, 'year': 1961, 'value': 2605000.0},
 {'id': 414, 'country': 150, 'year': 1961, 'value': 5223570.0},
 {'id': 415, 'country': 151, 'year': 1961, 'value': 92325.0},
 {'id': 416, 'country': 152, 'year': 1961, 'value': 108062000.0},
 {'id': 417, 'country': 153, 'year': 1961, 'value': 38966100.0},
 {'id': 418, 'country': 154, 'year': 1961, 'value': 15051.0},
 {'id': 419, 'country': 155, 'year': 1961, 'value': 2139270000.0},
 {'id': 420, 'country': 156, 'year': 1961, 'value': 1507650.0},
 {'id': 421, 'country': 157, 'year': 1961, 'value': 5322270.0},
 {'id': 422, 'country': 158, 'year': 1961, 'value': 325250.0},
 {'id': 423, 'country': 159, 'year': 1961, 'value': 22211600.0},
 {'id': 424, 'country': 160, 'year': 1961, 'value': 100147000.0},
 {'id': 425, 'country': 161, 'year': 1961, 'value': 491140.0},
 {'id': 426, 'country': 162, 'year': 1961, 'value': 982178.0},
 {'id': 427, 'country': 163, 'year': 1961, 'value': 10245.0},
 {'id': 428, 'country': 164, 'year': 1961, 'value': 7342110.0},
 {'id': 429, 'country': 165, 'year': 1961, 'value': 875581.0},
 {'id': 430, 'country': 166, 'year': 1961, 'value': 680757.0},
 {'id': 431, 'country': 167, 'year': 1961, 'value': 3747750.0},
 {'id': 432, 'country': 168, 'year': 1961, 'value': 8417820.0},
 {'id': 433, 'country': 169, 'year': 1961, 'value': 202008000.0},
 {'id': 434, 'country': 170, 'year': 1961, 'value': 649279.0},
 {'id': 435, 'country': 171, 'year': 1961, 'value': 81200.0},
 {'id': 436, 'country': 172, 'year': 1961, 'value': 3486330.0},
 {'id': 437, 'country': 173, 'year': 1961, 'value': 46063600.0},
 {'id': 438, 'country': 174, 'year': 1961, 'value': 1829780.0},
 {'id': 439, 'country': 175, 'year': 1961, 'value': 11638700.0},
 {'id': 440, 'country': 176, 'year': 1961, 'value': 3609800.0},
 {'id': 441, 'country': 177, 'year': 1961, 'value': 10267300.0},
 {'id': 442, 'country': 178, 'year': 1961, 'value': 4632.0},
 {'id': 443, 'country': 179, 'year': 1961, 'value': 2419700.0},
 {'id': 444, 'country': 180, 'year': 1961, 'value': 803629000.0},
 {'id': 445, 'country': 181, 'year': 1961, 'value': 564893.0},
 {'id': 446, 'country': 182, 'year': 1961, 'value': 9315840.0},
 {'id': 447, 'country': 183, 'year': 1961, 'value': 46065200.0},
 {'id': 448, 'country': 184, 'year': 1961, 'value': 1167110.0},
 {'id': 449, 'country': 185, 'year': 1961, 'value': 10446600.0},
 {'id': 450, 'country': 186, 'year': 1961, 'value': 27161000.0},
 {'id': 451, 'country': 187, 'year': 1961, 'value': 10049.0},
 {'id': 452, 'country': 188, 'year': 1961, 'value': 2297060.0},
 {'id': 453, 'country': 189, 'year': 1961, 'value': 29964000.0},
 {'id': 454, 'country': 190, 'year': 1961, 'value': 191890000.0},
 {'id': 455, 'country': 191, 'year': 1961, 'value': 2399720.0},
 {'id': 456, 'country': 192, 'year': 1961, 'value': 11665600.0},
 {'id': 457, 'country': 193, 'year': 1961, 'value': 8929320.0},
 {'id': 458, 'country': 194, 'year': 1961, 'value': 1954550.0},
 {'id': 459, 'country': 195, 'year': 1961, 'value': nan},
 {'id': 460, 'country': 196, 'year': 1961, 'value': 893380.0},
 {'id': 461, 'country': 197, 'year': 1961, 'value': 765311000.0},
 {'id': 462, 'country': 198, 'year': 1961, 'value': 80706.0},
 {'id': 463, 'country': 199, 'year': 1961, 'value': 51421.0},
 {'id': 464, 'country': 200, 'year': 1961, 'value': 18555200.0},
 {'id': 465, 'country': 201, 'year': 1961, 'value': 121236000.0},
 {'id': 466, 'country': 202, 'year': 1961, 'value': 2998320.0},
 {'id': 467, 'country': 203, 'year': 1961, 'value': 584940000.0},
 {'id': 468, 'country': 204, 'year': 1961, 'value': 4218850.0},
 {'id': 469, 'country': 205, 'year': 1961, 'value': 7769480.0},
 {'id': 470, 'country': 206, 'year': 1961, 'value': 3295280.0},
 {'id': 471, 'country': 207, 'year': 1961, 'value': 1702400.0},
 {'id': 472, 'country': 208, 'year': 1961, 'value': 121378.0},
 {'id': 473, 'country': 209, 'year': 1961, 'value': 2352360.0},
 {'id': 474, 'country': 210, 'year': 1961, 'value': 2846600.0},
 {'id': 475, 'country': 211, 'year': 1961, 'value': 15837.0},
 {'id': 476, 'country': 212, 'year': 1961, 'value': 2814120.0},
 {'id': 477, 'country': 213, 'year': 1961, 'value': nan},
 {'id': 478, 'country': 214, 'year': 1961, 'value': 232524000.0},
 {'id': 479, 'country': 215, 'year': 1961, 'value': 2895600.0},
 {'id': 480, 'country': 216, 'year': 1961, 'value': 232567000.0},
 {'id': 481, 'country': 217, 'year': 1961, 'value': 14483300.0},
 {'id': 482, 'country': 218, 'year': 1961, 'value': 64602.0},
 {'id': 483, 'country': 219, 'year': 1961, 'value': 295916.0},
 {'id': 484, 'country': 220, 'year': 1961, 'value': 4191670.0},
 {'id': 485, 'country': 221, 'year': 1961, 'value': 1594130.0},
 {'id': 486, 'country': 222, 'year': 1961, 'value': 7520000.0},
 {'id': 487, 'country': 223, 'year': 1961, 'value': 343345.0},
 {'id': 488, 'country': 224, 'year': 1961, 'value': nan},
 {'id': 489, 'country': 225, 'year': 1961, 'value': 42889.0},
 {'id': 490, 'country': 226, 'year': 1961, 'value': 4721900.0},
 {'id': 491, 'country': 227, 'year': 1961, 'value': 5874.0},
 {'id': 492, 'country': 228, 'year': 1961, 'value': 3060370.0},
 {'id': 493, 'country': 229, 'year': 1961, 'value': 882808000.0},
 {'id': 494, 'country': 230, 'year': 1961, 'value': 313575000.0},
 {'id': 495, 'country': 231, 'year': 1961, 'value': 1597530.0},
 {'id': 496, 'country': 232, 'year': 1961, 'value': 28224200.0},
 {'id': 497, 'country': 233, 'year': 1961, 'value': 2159130.0},
 {'id': 498, 'country': 234, 'year': 1961, 'value': 1658360.0},
 {'id': 499, 'country': 235, 'year': 1961, 'value': 215714000.0},
 {'id': 500, 'country': 236, 'year': 1961, 'value': 482854.0},
 {'id': 501, 'country': 237, 'year': 1961, 'value': 100147000.0},
 {'id': 502, 'country': 238, 'year': 1961, 'value': 63715.0},
 {'id': 503, 'country': 239, 'year': 1961, 'value': 584940000.0},
 {'id': 504, 'country': 240, 'year': 1961, 'value': 232567000.0},
 {'id': 505, 'country': 241, 'year': 1961, 'value': 864818.0},
 {'id': 506, 'country': 242, 'year': 1961, 'value': 4238140.0},
 {'id': 507, 'country': 243, 'year': 1961, 'value': 28146900.0},
 {'id': 508, 'country': 244, 'year': 1961, 'value': 5335.0},
 {'id': 509, 'country': 245, 'year': 1961, 'value': 10346700.0},
 {'id': 510, 'country': 246, 'year': 1961, 'value': 6983820.0},
 {'id': 511, 'country': 247, 'year': 1961, 'value': 43206300.0},
 {'id': 512, 'country': 248, 'year': 1961, 'value': 1189520000.0},
 {'id': 513, 'country': 249, 'year': 1961, 'value': 2571680.0},
 {'id': 514, 'country': 250, 'year': 1961, 'value': 183691000.0},
 {'id': 515, 'country': 251, 'year': 1961, 'value': 8813620.0},
 {'id': 516, 'country': 252, 'year': 1961, 'value': 82169.0},
 {'id': 517, 'country': 253, 'year': 1961, 'value': 8439260.0},
 {'id': 518, 'country': 254, 'year': 1961, 'value': 8167.0},
 {'id': 519, 'country': 255, 'year': 1961, 'value': 34300.0},
 {'id': 520, 'country': 256, 'year': 1961, 'value': 33666100.0},
 {'id': 521, 'country': 257, 'year': 1961, 'value': 65705.0},
 {'id': 522, 'country': 258, 'year': 1961, 'value': 3073080000.0},
 {'id': 523, 'country': 259, 'year': 1961, 'value': 112105.0},
 {'id': 524, 'country': 260, 'year': 1961, 'value': 966000.0},
 {'id': 525, 'country': 261, 'year': 1961, 'value': 5393040.0},
 {'id': 526, 'country': 262, 'year': 1961, 'value': 17524500.0},
 {'id': 527, 'country': 263, 'year': 1961, 'value': 3164330.0},
 {'id': 528, 'country': 264, 'year': 1961, 'value': 3905030.0},
 {'id': 529, 'country': 1, 'year': 1962, 'value': 56225.0},
 {'id': 530, 'country': 2, 'year': 1962, 'value': 9351440.0},
 {'id': 531, 'country': 3, 'year': 1962, 'value': 5608540.0},
 {'id': 532, 'country': 4, 'year': 1962, 'value': 1711320.0},
 {'id': 533, 'country': 5, 'year': 1962, 'value': 15370.0},
 {'id': 534, 'country': 6, 'year': 1962, 'value': 97334400.0},
 {'id': 535, 'country': 7, 'year': 1962, 'value': 112118.0},
 {'id': 536, 'country': 8, 'year': 1962, 'value': 21153100.0},
 {'id': 537, 'country': 9, 'year': 1962, 'value': 2009530.0},
 {'id': 538, 'country': 10, 'year': 1962, 'value': 21253.0},
 {'id': 539, 'country': 11, 'year': 1962, 'value': 55841.0},
 {'id': 540, 'country': 12, 'year': 1962, 'value': 10742000.0},
 {'id': 541, 'country': 13, 'year': 1962, 'value': 7129860.0},
 {'id': 542, 'country': 14, 'year': 1962, 'value': 4171430.0},
 {'id': 543, 'country': 15, 'year': 1962, 'value': 2907320.0},
 {'id': 544, 'country': 16, 'year': 1962, 'value': 9220580.0},
 {'id': 545, 'country': 17, 'year': 1962, 'value': 2502900.0},
 {'id': 546, 'country': 18, 'year': 1962, 'value': 4960330.0},
 {'id': 547, 'country': 19, 'year': 1962, 'value': 50752200.0},
 {'id': 548, 'country': 20, 'year': 1962, 'value': 8012950.0},
 {'id': 549, 'country': 21, 'year': 1962, 'value': 173144.0},
 {'id': 550, 'country': 22, 'year': 1962, 'value': 121091.0},
 {'id': 551, 'country': 23, 'year': 1962, 'value': 3353230.0},
 {'id': 552, 'country': 24, 'year': 1962, 'value': 8351930.0},
 {'id': 553, 'country': 25, 'year': 1962, 'value': 97384.0},
 {'id': 554, 'country': 26, 'year': 1962, 'value': 46600.0},
 {'id': 555, 'country': 27, 'year': 1962, 'value': 3802990.0},
 {'id': 556, 'country': 28, 'year': 1962, 'value': 76514300.0},
 {'id': 557, 'country': 29, 'year': 1962, 'value': 232633.0},
 {'id': 558, 'country': 30, 'year': 1962, 'value': 89481.0},
 {'id': 559, 'country': 31, 'year': 1962, 'value': 234554.0},
 {'id': 560, 'country': 32, 'year': 1962, 'value': 523778.0},
 {'id': 561, 'country': 33, 'year': 1962, 'value': 1551910.0},
 {'id': 562, 'country': 34, 'year': 1962, 'value': 18614000.0},
 {'id': 563, 'country': 35, 'year': 1962, 'value': 93009500.0},
 {'id': 564, 'country': 36, 'year': 1962, 'value': 5573820.0},
 {'id': 565, 'country': 37, 'year': 1962, 'value': 111457.0},
 {'id': 566, 'country': 38, 'year': 1962, 'value': 8476900.0},
 {'id': 567, 'country': 39, 'year': 1962, 'value': 665770000.0},
 {'id': 568, 'country': 40, 'year': 1962, 'value': 3770770.0},
 {'id': 569, 'country': 41, 'year': 1962, 'value': 5398730.0},
 {'id': 570, 'country': 42, 'year': 1962, 'value': 16041200.0},
 {'id': 571, 'country': 43, 'year': 1962, 'value': 1069240.0},
 {'id': 572, 'country': 44, 'year': 1962, 'value': 17092900.0},
 {'id': 573, 'country': 45, 'year': 1962, 'value': 197198.0},
 {'id': 574, 'country': 46, 'year': 1962, 'value': 210142.0},
 {'id': 575, 'country': 47, 'year': 1962, 'value': 1433340.0},
 {'id': 576, 'country': 48, 'year': 1962, 'value': 4353630.0},
 {'id': 577, 'country': 49, 'year': 1962, 'value': 7453540.0},
 {'id': 578, 'country': 50, 'year': 1962, 'value': 128414.0},
 {'id': 579, 'country': 51, 'year': 1962, 'value': 8146.0},
 {'id': 580, 'country': 52, 'year': 1962, 'value': 577691.0},
 {'id': 581, 'country': 53, 'year': 1962, 'value': 9624660.0},
 {'id': 582, 'country': 54, 'year': 1962, 'value': 74025800.0},
 {'id': 583, 'country': 55, 'year': 1962, 'value': 94204.0},
 {'id': 584, 'country': 56, 'year': 1962, 'value': 61982.0},
 {'id': 585, 'country': 57, 'year': 1962, 'value': 4647730.0},
 {'id': 586, 'country': 58, 'year': 1962, 'value': 3521020.0},
 {'id': 587, 'country': 59, 'year': 1962, 'value': 11619800.0},
 {'id': 588, 'country': 60, 'year': 1962, 'value': 906419000.0},
 {'id': 589, 'country': 61, 'year': 1962, 'value': 1027290000.0},
 {'id': 590, 'country': 62, 'year': 1962, 'value': 1059020000.0},
 {'id': 591, 'country': 63, 'year': 1962, 'value': 283763000.0},
 {'id': 592, 'country': 64, 'year': 1962, 'value': 682922000.0},
 {'id': 593, 'country': 65, 'year': 1962, 'value': 4809200.0},
 {'id': 594, 'country': 66, 'year': 1962, 'value': 28112300.0},
 {'id': 595, 'country': 67, 'year': 1962, 'value': 270110000.0},
 {'id': 596, 'country': 68, 'year': 1962, 'value': 1060490.0},
 {'id': 597, 'country': 69, 'year': 1962, 'value': 31023400.0},
 {'id': 598, 'country': 70, 'year': 1962, 'value': 1241620.0},
 {'id': 599, 'country': 71, 'year': 1962, 'value': 23221400.0},
 {'id': 600, 'country': 72, 'year': 1962, 'value': 416450000.0},
 {'id': 601, 'country': 73, 'year': 1962, 'value': 125989000.0},
 {'id': 602, 'country': 74, 'year': 1962, 'value': 4491440.0},
 {'id': 603, 'country': 75, 'year': 1962, 'value': 421665.0},
 {'id': 604, 'country': 76, 'year': 1962, 'value': 47904900.0},
 {'id': 605, 'country': 77, 'year': 1962, 'value': 35524.0},
 {'id': 606, 'country': 78, 'year': 1962, 'value': 47367.0},
 {'id': 607, 'country': 79, 'year': 1962, 'value': 511287.0},
 {'id': 608, 'country': 80, 'year': 1962, 'value': 53250000.0},
 {'id': 609, 'country': 81, 'year': 1962, 'value': 3760300.0},
 {'id': 610, 'country': 82, 'year': 1962, 'value': 7071970.0},
 {'id': 611, 'country': 83, 'year': 1962, 'value': 24313.0},
 {'id': 612, 'country': 84, 'year': 1962, 'value': 3611430.0},
 {'id': 613, 'country': 85, 'year': 1962, 'value': 379894.0},
 {'id': 614, 'country': 86, 'year': 1962, 'value': 628883.0},
 {'id': 615, 'country': 87, 'year': 1962, 'value': 262219.0},
 {'id': 616, 'country': 88, 'year': 1962, 'value': 8448230.0},
 {'id': 617, 'country': 89, 'year': 1962, 'value': 92484.0},
 {'id': 618, 'country': 90, 'year': 1962, 'value': 35000.0},
 {'id': 619, 'country': 91, 'year': 1962, 'value': 4464250.0},
 {'id': 620, 'country': 92, 'year': 1962, 'value': 69604.0},
 {'id': 621, 'country': 93, 'year': 1962, 'value': 606285.0},
 {'id': 622, 'country': 94, 'year': 1962, 'value': 781558000.0},
 {'id': 623, 'country': 95, 'year': 1962, 'value': 3305200.0},
 {'id': 624, 'country': 96, 'year': 1962, 'value': 2155650.0},
 {'id': 625, 'country': 97, 'year': 1962, 'value': 169567000.0},
 {'id': 626, 'country': 98, 'year': 1962, 'value': 4196710.0},
 {'id': 627, 'country': 99, 'year': 1962, 'value': 4019170.0},
 {'id': 628, 'country': 100, 'year': 1962, 'value': 10061700.0},
 {'id': 629, 'country': 101, 'year': 1962, 'value': 1970950000.0},
 {'id': 630, 'country': 102, 'year': 1962, 'value': 2372990000.0},
 {'id': 631, 'country': 103, 'year': 1962, 'value': 402037000.0},
 {'id': 632, 'country': 104, 'year': 1962, 'value': 129965000.0},
 {'id': 633, 'country': 105, 'year': 1962, 'value': 92518400.0},
 {'id': 634, 'country': 106, 'year': 1962, 'value': 272072000.0},
 {'id': 635, 'country': 107, 'year': 1962, 'value': 48418.0},
 {'id': 636, 'country': 108, 'year': 1962, 'value': 469077000.0},
 {'id': 637, 'country': 109, 'year': 1962, 'value': nan},
 {'id': 638, 'country': 110, 'year': 1962, 'value': 2836050.0},
 {'id': 639, 'country': 111, 'year': 1962, 'value': 23071300.0},
 {'id': 640, 'country': 112, 'year': 1962, 'value': 7674220.0},
 {'id': 641, 'country': 113, 'year': 1962, 'value': 182378.0},
 {'id': 642, 'country': 114, 'year': 1962, 'value': 2293000.0},
 {'id': 643, 'country': 115, 'year': 1962, 'value': 50879400.0},
 {'id': 644, 'country': 116, 'year': 1962, 'value': 1676500.0},
 {'id': 645, 'country': 117, 'year': 1962, 'value': 1010660.0},
 {'id': 646, 'country': 118, 'year': 1962, 'value': 95832000.0},
 {'id': 647, 'country': 119, 'year': 1962, 'value': 10756900.0},
 {'id': 648, 'country': 120, 'year': 1962, 'value': 8647010.0},
 {'id': 649, 'country': 121, 'year': 1962, 'value': 2333400.0},
 {'id': 650, 'country': 122, 'year': 1962, 'value': 6028430.0},
 {'id': 651, 'country': 123, 'year': 1962, 'value': 43281.0},
 {'id': 652, 'country': 124, 'year': 1962, 'value': 50963.0},
 {'id': 653, 'country': 125, 'year': 1962, 'value': 26513000.0},
 {'id': 654, 'country': 126, 'year': 1962, 'value': 337348.0},
 {'id': 655, 'country': 127, 'year': 1962, 'value': 215946000.0},
 {'id': 656, 'country': 128, 'year': 1962, 'value': 2221120.0},
 {'id': 657, 'country': 129, 'year': 1962, 'value': 1925300.0},
 {'id': 658, 'country': 130, 'year': 1962, 'value': 1166650.0},
 {'id': 659, 'country': 131, 'year': 1962, 'value': 1550810.0},
 {'id': 660, 'country': 132, 'year': 1962, 'value': 91891.0},
 {'id': 661, 'country': 133, 'year': 1962, 'value': 232266000.0},
 {'id': 662, 'country': 134, 'year': 1962, 'value': 251901000.0},
 {'id': 663, 'country': 135, 'year': 1962, 'value': 165831000.0},
 {'id': 664, 'country': 136, 'year': 1962, 'value': 17289.0},
 {'id': 665, 'country': 137, 'year': 1962, 'value': 10352200.0},
 {'id': 666, 'country': 138, 'year': 1962, 'value': 971743000.0},
 {'id': 667, 'country': 139, 'year': 1962, 'value': 2344510000.0},
 {'id': 668, 'country': 140, 'year': 1962, 'value': 869136.0},
 {'id': 669, 'country': 141, 'year': 1962, 'value': 1114450000.0},
 {'id': 670, 'country': 142, 'year': 1962, 'value': 2863350.0},
 {'id': 671, 'country': 143, 'year': 1962, 'value': 320750.0},
 {'id': 672, 'country': 144, 'year': 1962, 'value': 2181590.0},
 {'id': 673, 'country': 145, 'year': 1962, 'value': 176183.0},
 {'id': 674, 'country': 146, 'year': 1962, 'value': 4076.0},
 {'id': 675, 'country': 147, 'year': 1962, 'value': 13094900.0},
 {'id': 676, 'country': 148, 'year': 1962, 'value': 23039.0},
 {'id': 677, 'country': 149, 'year': 1962, 'value': 2664000.0},
 {'id': 678, 'country': 150, 'year': 1962, 'value': 5352500.0},
 {'id': 679, 'country': 151, 'year': 1962, 'value': 94905.0},
 {'id': 680, 'country': 152, 'year': 1962, 'value': 111045000.0},
 {'id': 681, 'country': 153, 'year': 1962, 'value': 40195300.0},
 {'id': 682, 'country': 154, 'year': 1962, 'value': 15547.0},
 {'id': 683, 'country': 155, 'year': 1962, 'value': 2178680000.0},
 {'id': 684, 'country': 156, 'year': 1962, 'value': 1527110.0},
 {'id': 685, 'country': 157, 'year': 1962, 'value': 5381370.0},
 {'id': 686, 'country': 158, 'year': 1962, 'value': 323900.0},
 {'id': 687, 'country': 159, 'year': 1962, 'value': 22697700.0},
 {'id': 688, 'country': 160, 'year': 1962, 'value': 102808000.0},
 {'id': 689, 'country': 161, 'year': 1962, 'value': 502558.0},
 {'id': 690, 'country': 162, 'year': 1962, 'value': 1011320.0},
 {'id': 691, 'country': 163, 'year': 1962, 'value': 10436.0},
 {'id': 692, 'country': 164, 'year': 1962, 'value': 7507300.0},
 {'id': 693, 'country': 165, 'year': 1962, 'value': 901686.0},
 {'id': 694, 'country': 166, 'year': 1962, 'value': 700349.0},
 {'id': 695, 'country': 167, 'year': 1962, 'value': 3839040.0},
 {'id': 696, 'country': 168, 'year': 1962, 'value': 8692340.0},
 {'id': 697, 'country': 169, 'year': 1962, 'value': 205199000.0},
 {'id': 698, 'country': 170, 'year': 1962, 'value': 665115.0},
 {'id': 699, 'country': 171, 'year': 1962, 'value': 83400.0},
 {'id': 700, 'country': 172, 'year': 1962, 'value': 3588230.0},
 {'id': 701, 'country': 173, 'year': 1962, 'value': 47029800.0},
 {'id': 702, 'country': 174, 'year': 1962, 'value': 1887420.0},
 {'id': 703, 'country': 175, 'year': 1962, 'value': 11805700.0},
 {'id': 704, 'country': 176, 'year': 1962, 'value': 3638920.0},
 {'id': 705, 'country': 177, 'year': 1962, 'value': 10433100.0},
 {'id': 706, 'country': 178, 'year': 1962, 'value': 4944.0},
 {'id': 707, 'country': 179, 'year': 1962, 'value': 2482000.0},
 {'id': 708, 'country': 180, 'year': 1962, 'value': 814577000.0},
 {'id': 709, 'country': 181, 'year': 1962, 'value': 578823.0},
 {'id': 710, 'country': 182, 'year': 1962, 'value': 9485200.0},
 {'id': 711, 'country': 183, 'year': 1962, 'value': 47198900.0},
 {'id': 712, 'country': 184, 'year': 1962, 'value': 1202450.0},
 {'id': 713, 'country': 185, 'year': 1962, 'value': 10749500.0},
 {'id': 714, 'country': 186, 'year': 1962, 'value': 28077300.0},
 {'id': 715, 'country': 187, 'year': 1962, 'value': 10317.0},
 {'id': 716, 'country': 188, 'year': 1962, 'value': 2340350.0},
 {'id': 717, 'country': 189, 'year': 1962, 'value': 30308500.0},
 {'id': 718, 'country': 190, 'year': 1962, 'value': 196349000.0},
 {'id': 719, 'country': 191, 'year': 1962, 'value': 2450320.0},
 {'id': 720, 'country': 192, 'year': 1962, 'value': 11871700.0},
 {'id': 721, 'country': 193, 'year': 1962, 'value': 8993980.0},
 {'id': 722, 'country': 194, 'year': 1962, 'value': 2006670.0},
 {'id': 723, 'country': 195, 'year': 1962, 'value': nan},
 {'id': 724, 'country': 196, 'year': 1962, 'value': 923306.0},
 {'id': 725, 'country': 197, 'year': 1962, 'value': 774755000.0},
 {'id': 726, 'country': 198, 'year': 1962, 'value': 83655.0},
 {'id': 727, 'country': 199, 'year': 1962, 'value': 56262.0},
 {'id': 728, 'country': 200, 'year': 1962, 'value': 18676600.0},
 {'id': 729, 'country': 201, 'year': 1962, 'value': 122591000.0},
 {'id': 730, 'country': 202, 'year': 1962, 'value': 3052940.0},
 {'id': 731, 'country': 203, 'year': 1962, 'value': 597494000.0},
 {'id': 732, 'country': 204, 'year': 1962, 'value': 4362790.0},
 {'id': 733, 'country': 205, 'year': 1962, 'value': 8004120.0},
 {'id': 734, 'country': 206, 'year': 1962, 'value': 3386810.0},
 {'id': 735, 'country': 207, 'year': 1962, 'value': 1750200.0},
 {'id': 736, 'country': 208, 'year': 1962, 'value': 125040.0},
 {'id': 737, 'country': 209, 'year': 1962, 'value': 2388770.0},
 {'id': 738, 'country': 210, 'year': 1962, 'value': 2931190.0},
 {'id': 739, 'country': 211, 'year': 1962, 'value': 16255.0},
 {'id': 740, 'country': 212, 'year': 1962, 'value': 2874220.0},
 {'id': 741, 'country': 213, 'year': 1962, 'value': nan},
 {'id': 742, 'country': 214, 'year': 1962, 'value': 238078000.0},
 {'id': 743, 'country': 215, 'year': 1962, 'value': 2951040.0},
 {'id': 744, 'country': 216, 'year': 1962, 'value': 238122000.0},
 {'id': 745, 'country': 217, 'year': 1962, 'value': 14762100.0},
 {'id': 746, 'country': 218, 'year': 1962, 'value': 64479.0},
 {'id': 747, 'country': 219, 'year': 1962, 'value': 303895.0},
 {'id': 748, 'country': 220, 'year': 1962, 'value': 4238190.0},
 {'id': 749, 'country': 221, 'year': 1962, 'value': 1603650.0},
 {'id': 750, 'country': 222, 'year': 1962, 'value': 7561590.0},
 {'id': 751, 'country': 223, 'year': 1962, 'value': 350156.0},
 {'id': 752, 'country': 224, 'year': 1962, 'value': nan},
 {'id': 753, 'country': 225, 'year': 1962, 'value': 44042.0},
 {'id': 754, 'country': 226, 'year': 1962, 'value': 4875420.0},
 {'id': 755, 'country': 227, 'year': 1962, 'value': 5884.0},
 {'id': 756, 'country': 228, 'year': 1962, 'value': 3121240.0},
 {'id': 757, 'country': 229, 'year': 1962, 'value': 894536000.0},
 {'id': 758, 'country': 230, 'year': 1962, 'value': 318268000.0},
 {'id': 759, 'country': 231, 'year': 1962, 'value': 1612760.0},
 {'id': 760, 'country': 232, 'year': 1962, 'value': 29080900.0},
 {'id': 761, 'country': 233, 'year': 1962, 'value': 2236570.0},
 {'id': 762, 'country': 234, 'year': 1962, 'value': 1715410.0},
 {'id': 763, 'country': 235, 'year': 1962, 'value': 221762000.0},
 {'id': 764, 'country': 236, 'year': 1962, 'value': 491571.0},
 {'id': 765, 'country': 237, 'year': 1962, 'value': 102808000.0},
 {'id': 766, 'country': 238, 'year': 1962, 'value': 66235.0},
 {'id': 767, 'country': 239, 'year': 1962, 'value': 597494000.0},
 {'id': 768, 'country': 240, 'year': 1962, 'value': 238122000.0},
 {'id': 769, 'country': 241, 'year': 1962, 'value': 879441.0},
 {'id': 770, 'country': 242, 'year': 1962, 'value': 4305480.0},
 {'id': 771, 'country': 243, 'year': 1962, 'value': 28832800.0},
 {'id': 772, 'country': 244, 'year': 1962, 'value': 5340.0},
 {'id': 773, 'country': 245, 'year': 1962, 'value': 10652000.0},
 {'id': 774, 'country': 246, 'year': 1962, 'value': 7215800.0},
 {'id': 775, 'country': 247, 'year': 1962, 'value': 43752200.0},
 {'id': 776, 'country': 248, 'year': 1962, 'value': 1206930000.0},
 {'id': 777, 'country': 249, 'year': 1962, 'value': 2603880.0},
 {'id': 778, 'country': 250, 'year': 1962, 'value': 186538000.0},
 {'id': 779, 'country': 251, 'year': 1962, 'value': 9113620.0},
 {'id': 780, 'country': 252, 'year': 1962, 'value': 83237.0},
 {'id': 781, 'country': 253, 'year': 1962, 'value': 8742780.0},
 {'id': 782, 'country': 254, 'year': 1962, 'value': 8310.0},
 {'id': 783, 'country': 255, 'year': 1962, 'value': 35000.0},
 {'id': 784, 'country': 256, 'year': 1962, 'value': 34683400.0},
 {'id': 785, 'country': 257, 'year': 1962, 'value': 67794.0},
 {'id': 786, 'country': 258, 'year': 1962, 'value': 3126070000.0},
 {'id': 787, 'country': 259, 'year': 1962, 'value': 115776.0},
 {'id': 788, 'country': 260, 'year': 1962, 'value': 994000.0},
 {'id': 789, 'country': 261, 'year': 1962, 'value': 5473670.0},
 {'id': 790, 'country': 262, 'year': 1962, 'value': 17965700.0},
 {'id': 791, 'country': 263, 'year': 1962, 'value': 3260650.0},
 {'id': 792, 'country': 264, 'year': 1962, 'value': 4039200.0},
 {'id': 793, 'country': 1, 'year': 1963, 'value': 56695.0},
 {'id': 794, 'country': 2, 'year': 1963, 'value': 9543200.0},
 {'id': 795, 'country': 3, 'year': 1963, 'value': 5679460.0},
 {'id': 796, 'country': 4, 'year': 1963, 'value': 1762620.0},
 {'id': 797, 'country': 5, 'year': 1963, 'value': 16412.0},
 {'id': 798, 'country': 6, 'year': 1963, 'value': 100034000.0},
 {'id': 799, 'country': 7, 'year': 1963, 'value': 125130.0},
 {'id': 800, 'country': 8, 'year': 1963, 'value': 21488900.0},
 {'id': 801, 'country': 9, 'year': 1963, 'value': 2077580.0},
 {'id': 802, 'country': 10, 'year': 1963, 'value': 22034.0},
 {'id': 803, 'country': 11, 'year': 1963, 'value': 56702.0},
 {'id': 804, 'country': 12, 'year': 1963, 'value': 10950000.0},
 {'id': 805, 'country': 13, 'year': 1963, 'value': 7175810.0},
 {'id': 806, 'country': 14, 'year': 1963, 'value': 4315130.0},
 {'id': 807, 'country': 15, 'year': 1963, 'value': 2964430.0},
 {'id': 808, 'country': 16, 'year': 1963, 'value': 9289770.0},
 {'id': 809, 'country': 17, 'year': 1963, 'value': 2542860.0},
 {'id': 810, 'country': 18, 'year': 1963, 'value': 5027820.0},
 {'id': 811, 'country': 19, 'year': 1963, 'value': 52202000.0},
 {'id': 812, 'country': 20, 'year': 1963, 'value': 8078140.0},
 {'id': 813, 'country': 21, 'year': 1963, 'value': 178140.0},
 {'id': 814, 'country': 22, 'year': 1963, 'value': 127339.0},
 {'id': 815, 'country': 23, 'year': 1963, 'value': 3417570.0},
 {'id': 816, 'country': 24, 'year': 1963, 'value': 8437230.0},
 {'id': 817, 'country': 25, 'year': 1963, 'value': 100164.0},
 {'id': 818, 'country': 26, 'year': 1963, 'value': 47700.0},
 {'id': 819, 'country': 27, 'year': 1963, 'value': 3879190.0},
 {'id': 820, 'country': 28, 'year': 1963, 'value': 78772700.0},
 {'id': 821, 'country': 29, 'year': 1963, 'value': 233630.0},
 {'id': 822, 'country': 30, 'year': 1963, 'value': 93540.0},
 {'id': 823, 'country': 31, 'year': 1963, 'value': 240523.0},
 {'id': 824, 'country': 32, 'year': 1963, 'value': 535685.0},
 {'id': 825, 'country': 33, 'year': 1963, 'value': 1579370.0},
 {'id': 826, 'country': 34, 'year': 1963, 'value': 18964000.0},
 {'id': 827, 'country': 35, 'year': 1963, 'value': 93840000.0},
 {'id': 828, 'country': 36, 'year': 1963, 'value': 5694250.0},
 {'id': 829, 'country': 37, 'year': 1963, 'value': 112595.0},
 {'id': 830, 'country': 38, 'year': 1963, 'value': 8650390.0},
 {'id': 831, 'country': 39, 'year': 1963, 'value': 682335000.0},
 {'id': 832, 'country': 40, 'year': 1963, 'value': 3918630.0},
 {'id': 833, 'country': 41, 'year': 1963, 'value': 5518100.0},
 {'id': 834, 'country': 42, 'year': 1963, 'value': 16461800.0},
 {'id': 835, 'country': 43, 'year': 1963, 'value': 1096640.0},
 {'id': 836, 'country': 44, 'year': 1963, 'value': 17630000.0},
 {'id': 837, 'country': 45, 'year': 1963, 'value': 200372.0},
 {'id': 838, 'country': 46, 'year': 1963, 'value': 216096.0},
 {'id': 839, 'country': 47, 'year': 1963, 'value': 1486550.0},
 {'id': 840, 'country': 48, 'year': 1963, 'value': 4432220.0},
 {'id': 841, 'country': 49, 'year': 1963, 'value': 7623290.0},
 {'id': 842, 'country': 50, 'year': 1963, 'value': 130860.0},
 {'id': 843, 'country': 51, 'year': 1963, 'value': 8227.0},
 {'id': 844, 'country': 52, 'year': 1963, 'value': 577913.0},
 {'id': 845, 'country': 53, 'year': 1963, 'value': 9670680.0},
 {'id': 846, 'country': 54, 'year': 1963, 'value': 74714400.0},
 {'id': 847, 'country': 55, 'year': 1963, 'value': 100628.0},
 {'id': 848, 'country': 56, 'year': 1963, 'value': 62918.0},
 {'id': 849, 'country': 57, 'year': 1963, 'value': 4684480.0},
 {'id': 850, 'country': 58, 'year': 1963, 'value': 3638110.0},
 {'id': 851, 'country': 59, 'year': 1963, 'value': 11912800.0},
 {'id': 852, 'country': 60, 'year': 1963, 'value': 929640000.0},
 {'id': 853, 'country': 61, 'year': 1963, 'value': 1052060000.0},
 {'id': 854, 'country': 62, 'year': 1963, 'value': 1084800000.0},
 {'id': 855, 'country': 63, 'year': 1963, 'value': 288100000.0},
 {'id': 856, 'country': 64, 'year': 1963, 'value': 690947000.0},
 {'id': 857, 'country': 65, 'year': 1963, 'value': 4948990.0},
 {'id': 858, 'country': 66, 'year': 1963, 'value': 28871400.0},
 {'id': 859, 'country': 67, 'year': 1963, 'value': 272655000.0},
 {'id': 860, 'country': 68, 'year': 1963, 'value': 1088850.0},
 {'id': 861, 'country': 69, 'year': 1963, 'value': 31296700.0},
 {'id': 862, 'country': 70, 'year': 1963, 'value': 1258860.0},
 {'id': 863, 'country': 71, 'year': 1963, 'value': 23798400.0},
 {'id': 864, 'country': 72, 'year': 1963, 'value': 420166000.0},
 {'id': 865, 'country': 73, 'year': 1963, 'value': 128998000.0},
 {'id': 866, 'country': 74, 'year': 1963, 'value': 4523310.0},
 {'id': 867, 'country': 75, 'year': 1963, 'value': 436293.0},
 {'id': 868, 'country': 76, 'year': 1963, 'value': 48582600.0},
 {'id': 869, 'country': 77, 'year': 1963, 'value': 35969.0},
 {'id': 870, 'country': 78, 'year': 1963, 'value': 48855.0},
 {'id': 871, 'country': 79, 'year': 1963, 'value': 517580.0},
 {'id': 872, 'country': 80, 'year': 1963, 'value': 53650000.0},
 {'id': 873, 'country': 81, 'year': 1963, 'value': 3816100.0},
 {'id': 874, 'country': 82, 'year': 1963, 'value': 7300120.0},
 {'id': 875, 'country': 83, 'year': 1963, 'value': 24889.0},
 {'id': 876, 'country': 84, 'year': 1963, 'value': 3672560.0},
 {'id': 877, 'country': 85, 'year': 1963, 'value': 387641.0},
 {'id': 878, 'country': 86, 'year': 1963, 'value': 635011.0},
 {'id': 879, 'country': 87, 'year': 1963, 'value': 266000.0},
 {'id': 880, 'country': 88, 'year': 1963, 'value': 8479620.0},
 {'id': 881, 'country': 89, 'year': 1963, 'value': 93413.0},
 {'id': 882, 'country': 90, 'year': 1963, 'value': 36400.0},
 {'id': 883, 'country': 91, 'year': 1963, 'value': 4595510.0},
 {'id': 884, 'country': 92, 'year': 1963, 'value': 71286.0},
 {'id': 885, 'country': 93, 'year': 1963, 'value': 622575.0},
 {'id': 886, 'country': 94, 'year': 1963, 'value': 791501000.0},
 {'id': 887, 'country': 95, 'year': 1963, 'value': 3420900.0},
 {'id': 888, 'country': 96, 'year': 1963, 'value': 2216700.0},
 {'id': 889, 'country': 97, 'year': 1963, 'value': 173723000.0},
 {'id': 890, 'country': 98, 'year': 1963, 'value': 4225680.0},
 {'id': 891, 'country': 99, 'year': 1963, 'value': 4097760.0},
 {'id': 892, 'country': 100, 'year': 1963, 'value': 10087900.0},
 {'id': 893, 'country': 101, 'year': 1963, 'value': 2016410000.0},
 {'id': 894, 'country': 102, 'year': 1963, 'value': 2428490000.0},
 {'id': 895, 'country': 103, 'year': 1963, 'value': 412078000.0},
 {'id': 896, 'country': 104, 'year': 1963, 'value': 133206000.0},
 {'id': 897, 'country': 105, 'year': 1963, 'value': 95015300.0},
 {'id': 898, 'country': 106, 'year': 1963, 'value': 278872000.0},
 {'id': 899, 'country': 107, 'year': 1963, 'value': 48800.0},
 {'id': 900, 'country': 108, 'year': 1963, 'value': 478826000.0},
 {'id': 901, 'country': 109, 'year': 1963, 'value': nan},
 {'id': 902, 'country': 110, 'year': 1963, 'value': 2852650.0},
 {'id': 903, 'country': 111, 'year': 1963, 'value': 23680300.0},
 {'id': 904, 'country': 112, 'year': 1963, 'value': 7888910.0},
 {'id': 905, 'country': 113, 'year': 1963, 'value': 185653.0},
 {'id': 906, 'country': 114, 'year': 1963, 'value': 2379000.0},
 {'id': 907, 'country': 115, 'year': 1963, 'value': 51252000.0},
 {'id': 908, 'country': 116, 'year': 1963, 'value': 1703650.0},
 {'id': 909, 'country': 117, 'year': 1963, 'value': 1050210.0},
 {'id': 910, 'country': 118, 'year': 1963, 'value': 96812000.0},
 {'id': 911, 'country': 119, 'year': 1963, 'value': 11147900.0},
 {'id': 912, 'country': 120, 'year': 1963, 'value': 8928510.0},
 {'id': 913, 'country': 121, 'year': 1963, 'value': 2413700.0},
 {'id': 914, 'country': 122, 'year': 1963, 'value': 6183580.0},
 {'id': 915, 'country': 123, 'year': 1963, 'value': 44338.0},
 {'id': 916, 'country': 124, 'year': 1963, 'value': 50525.0},
 {'id': 917, 'country': 125, 'year': 1963, 'value': 27261700.0},
 {'id': 918, 'country': 126, 'year': 1963, 'value': 378746.0},
 {'id': 919, 'country': 127, 'year': 1963, 'value': 222053000.0},
 {'id': 920, 'country': 128, 'year': 1963, 'value': 2273350.0},
 {'id': 921, 'country': 129, 'year': 1963, 'value': 1985000.0},
 {'id': 922, 'country': 130, 'year': 1963, 'value': 1191800.0},
 {'id': 923, 'country': 131, 'year': 1963, 'value': 1607170.0},
 {'id': 924, 'country': 132, 'year': 1963, 'value': 93211.0},
 {'id': 925, 'country': 133, 'year': 1963, 'value': 238696000.0},
 {'id': 926, 'country': 134, 'year': 1963, 'value': 257908000.0},
 {'id': 927, 'country': 135, 'year': 1963, 'value': 169530000.0},
 {'id': 928, 'country': 136, 'year': 1963, 'value': 17719.0},
 {'id': 929, 'country': 137, 'year': 1963, 'value': 10597500.0},
 {'id': 930, 'country': 138, 'year': 1963, 'value': 994420000.0},
 {'id': 931, 'country': 139, 'year': 1963, 'value': 2399690000.0},
 {'id': 932, 'country': 140, 'year': 1963, 'value': 886057.0},
 {'id': 933, 'country': 141, 'year': 1963, 'value': 1140420000.0},
 {'id': 934, 'country': 142, 'year': 1963, 'value': 2898950.0},
 {'id': 935, 'country': 143, 'year': 1963, 'value': 324100.0},
 {'id': 936, 'country': 144, 'year': 1963, 'value': 2210920.0},
 {'id': 937, 'country': 145, 'year': 1963, 'value': 184245.0},
 {'id': 938, 'country': 146, 'year': 1963, 'value': 4183.0},
 {'id': 939, 'country': 147, 'year': 1963, 'value': 13478400.0},
 {'id': 940, 'country': 148, 'year': 1963, 'value': 23168.0},
 {'id': 941, 'country': 149, 'year': 1963, 'value': 2720000.0},
 {'id': 942, 'country': 150, 'year': 1963, 'value': 5486320.0},
 {'id': 943, 'country': 151, 'year': 1963, 'value': 97551.0},
 {'id': 944, 'country': 152, 'year': 1963, 'value': 114102000.0},
 {'id': 945, 'country': 153, 'year': 1963, 'value': 41462400.0},
 {'id': 946, 'country': 154, 'year': 1963, 'value': 16114.0},
 {'id': 947, 'country': 155, 'year': 1963, 'value': 2230160000.0},
 {'id': 948, 'country': 156, 'year': 1963, 'value': 1547450.0},
 {'id': 949, 'country': 157, 'year': 1963, 'value': 5441610.0},
 {'id': 950, 'country': 158, 'year': 1963, 'value': 322550.0},
 {'id': 951, 'country': 159, 'year': 1963, 'value': 23198200.0},
 {'id': 952, 'country': 160, 'year': 1963, 'value': 105546000.0},
 {'id': 953, 'country': 161, 'year': 1963, 'value': 513409.0},
 {'id': 954, 'country': 162, 'year': 1963, 'value': 1042380.0},
 {'id': 955, 'country': 163, 'year': 1963, 'value': 10590.0},
 {'id': 956, 'country': 164, 'year': 1963, 'value': 7679460.0},
 {'id': 957, 'country': 165, 'year': 1963, 'value': 928734.0},
 {'id': 958, 'country': 166, 'year': 1963, 'value': 718861.0},
 {'id': 959, 'country': 167, 'year': 1963, 'value': 3933910.0},
 {'id': 960, 'country': 168, 'year': 1963, 'value': 8973790.0},
 {'id': 961, 'country': 169, 'year': 1963, 'value': 208254000.0},
 {'id': 962, 'country': 170, 'year': 1963, 'value': 681637.0},
 {'id': 963, 'country': 171, 'year': 1963, 'value': 85700.0},
 {'id': 964, 'country': 172, 'year': 1963, 'value': 3693980.0},
 {'id': 965, 'country': 173, 'year': 1963, 'value': 48032900.0},
 {'id': 966, 'country': 174, 'year': 1963, 'value': 1946230.0},
 {'id': 967, 'country': 175, 'year': 1963, 'value': 11966000.0},
 {'id': 968, 'country': 176, 'year': 1963, 'value': 3666540.0},
 {'id': 969, 'country': 177, 'year': 1963, 'value': 10604600.0},
 {'id': 970, 'country': 178, 'year': 1963, 'value': 5275.0},
 {'id': 971, 'country': 179, 'year': 1963, 'value': 2531800.0},
 {'id': 972, 'country': 180, 'year': 1963, 'value': 825495000.0},
 {'id': 973, 'country': 181, 'year': 1963, 'value': 593504.0},
 {'id': 974, 'country': 182, 'year': 1963, 'value': 9659440.0},
 {'id': 975, 'country': 183, 'year': 1963, 'value': 48387300.0},
 {'id': 976, 'country': 184, 'year': 1963, 'value': 1238890.0},
 {'id': 977, 'country': 185, 'year': 1963, 'value': 11062300.0},
 {'id': 978, 'country': 186, 'year': 1963, 'value': 29012600.0},
 {'id': 979, 'country': 187, 'year': 1963, 'value': 10569.0},
 {'id': 980, 'country': 188, 'year': 1963, 'value': 2385950.0},
 {'id': 981, 'country': 189, 'year': 1963, 'value': 30712000.0},
 {'id': 982, 'country': 190, 'year': 1963, 'value': 200998000.0},
 {'id': 983, 'country': 191, 'year': 1963, 'value': 2504530.0},
 {'id': 984, 'country': 192, 'year': 1963, 'value': 12065500.0},
 {'id': 985, 'country': 193, 'year': 1963, 'value': 9030360.0},
 {'id': 986, 'country': 194, 'year': 1963, 'value': 2060340.0},
 {'id': 987, 'country': 195, 'year': 1963, 'value': nan},
 {'id': 988, 'country': 196, 'year': 1963, 'value': 954111.0},
 {'id': 989, 'country': 197, 'year': 1963, 'value': 784054000.0},
 {'id': 990, 'country': 198, 'year': 1963, 'value': 86847.0},
 {'id': 991, 'country': 199, 'year': 1963, 'value': 61716.0},
 {'id': 992, 'country': 200, 'year': 1963, 'value': 18797800.0},
 {'id': 993, 'country': 201, 'year': 1963, 'value': 123960000.0},
 {'id': 994, 'country': 202, 'year': 1963, 'value': 3105420.0},
 {'id': 995, 'country': 203, 'year': 1963, 'value': 610498000.0},
 {'id': 996, 'country': 204, 'year': 1963, 'value': 4516530.0},
 {'id': 997, 'country': 205, 'year': 1963, 'value': 8248810.0},
 {'id': 998, 'country': 206, 'year': 1963, 'value': 3481650.0},
 {'id': 999, 'country': 207, 'year': 1963, 'value': 1795000.0},
 {'id': 1000, 'country': 208, 'year': 1963, 'value': 128838.0},
 ...]

In [ ]:
db.rollback()

In [10]:
list(Country.select(
    Country.name, 
    GDP.year,
    GDP.value.alias('gdp'),
    Population.value.alias('pop'),
).where(
    Country.id == 110
).join(
    GDP, 
    on=Country.id == GDP.country_id
).join(
    Population, 
    on=(Country.id == Population.country_id) & (GDP.year == Population.year)
).dicts())


Out[10]:
[{'name': 'Ireland', 'year': 1960, 'gdp': 685.615, 'pop': 2828600.0},
 {'name': 'Ireland', 'year': 1961, 'gdp': 739.276, 'pop': 2824400.0},
 {'name': 'Ireland', 'year': 1962, 'gdp': 797.006, 'pop': 2836050.0},
 {'name': 'Ireland', 'year': 1963, 'gdp': 852.135, 'pop': 2852650.0},
 {'name': 'Ireland', 'year': 1964, 'gdp': 965.135, 'pop': 2866550.0},
 {'name': 'Ireland', 'year': 1965, 'gdp': 1023.77, 'pop': 2877300.0},
 {'name': 'Ireland', 'year': 1966, 'gdp': 1074.51, 'pop': 2888800.0},
 {'name': 'Ireland', 'year': 1967, 'gdp': 1152.01, 'pop': 2902450.0},
 {'name': 'Ireland', 'year': 1968, 'gdp': 1124.52, 'pop': 2915550.0},
 {'name': 'Ireland', 'year': 1969, 'gdp': 1291.35, 'pop': 2932650.0},
 {'name': 'Ireland', 'year': 1970, 'gdp': 1488.29, 'pop': 2957250.0},
 {'name': 'Ireland', 'year': 1971, 'gdp': 1705.97, 'pop': 2992050.0},
 {'name': 'Ireland', 'year': 1972, 'gdp': 2082.96, 'pop': 3036850.0},
 {'name': 'Ireland', 'year': 1973, 'gdp': 2427.17, 'pop': 3085950.0},
 {'name': 'Ireland', 'year': 1974, 'gdp': 2519.94, 'pop': 3137500.0},
 {'name': 'Ireland', 'year': 1975, 'gdp': 2976.96, 'pop': 3189550.0},
 {'name': 'Ireland', 'year': 1976, 'gdp': 2923.08, 'pop': 3238050.0},
 {'name': 'Ireland', 'year': 1977, 'gdp': 3431.18, 'pop': 3282200.0},
 {'name': 'Ireland', 'year': 1978, 'gdp': 4405.26, 'pop': 3329100.0},
 {'name': 'Ireland', 'year': 1979, 'gdp': 5436.46, 'pop': 3373750.0},
 {'name': 'Ireland', 'year': 1980, 'gdp': 6380.07, 'pop': 3412800.0},
 {'name': 'Ireland', 'year': 1981, 'gdp': 5993.32, 'pop': 3453000.0},
 {'name': 'Ireland', 'year': 1982, 'gdp': 6168.02, 'pop': 3485800.0},
 {'name': 'Ireland', 'year': 1983, 'gdp': 5922.33, 'pop': 3510600.0},
 {'name': 'Ireland', 'year': 1984, 'gdp': 5698.84, 'pop': 3532420.0},
 {'name': 'Ireland', 'year': 1985, 'gdp': 6018.94, 'pop': 3538080.0},
 {'name': 'Ireland', 'year': 1986, 'gdp': 8121.89, 'pop': 3539690.0},
 {'name': 'Ireland', 'year': 1987, 'gdp': 9593.39, 'pop': 3540060.0},
 {'name': 'Ireland', 'year': 1988, 'gdp': 10728.7, 'pop': 3524950.0},
 {'name': 'Ireland', 'year': 1989, 'gdp': 11189.2, 'pop': 3511010.0},
 {'name': 'Ireland', 'year': 1990, 'gdp': 14048.1, 'pop': 3513970.0},
 {'name': 'Ireland', 'year': 1991, 'gdp': 14104.1, 'pop': 3534240.0},
 {'name': 'Ireland', 'year': 1992, 'gdp': 15733.2, 'pop': 3558430.0},
 {'name': 'Ireland', 'year': 1993, 'gdp': 14674.6, 'pop': 3576260.0},
 {'name': 'Ireland', 'year': 1994, 'gdp': 15922.0, 'pop': 3590390.0},
 {'name': 'Ireland', 'year': 1995, 'gdp': 19181.4, 'pop': 3608840.0},
 {'name': 'Ireland', 'year': 1996, 'gdp': 20860.6, 'pop': 3637510.0},
 {'name': 'Ireland', 'year': 1997, 'gdp': 22542.8, 'pop': 3674170.0},
 {'name': 'Ireland', 'year': 1998, 'gdp': 24263.2, 'pop': 3712700.0},
 {'name': 'Ireland', 'year': 1999, 'gdp': 26284.3, 'pop': 3754790.0},
 {'name': 'Ireland', 'year': 2000, 'gdp': 26241.4, 'pop': 3805170.0},
 {'name': 'Ireland', 'year': 2001, 'gdp': 28227.7, 'pop': 3866240.0},
 {'name': 'Ireland', 'year': 2002, 'gdp': 32541.1, 'pop': 3931950.0},
 {'name': 'Ireland', 'year': 2003, 'gdp': 41106.9, 'pop': 3996520.0},
 {'name': 'Ireland', 'year': 2004, 'gdp': 47631.0, 'pop': 4070260.0},
 {'name': 'Ireland', 'year': 2005, 'gdp': 50878.2, 'pop': 4159910.0},
 {'name': 'Ireland', 'year': 2006, 'gdp': 54306.4, 'pop': 4273590.0},
 {'name': 'Ireland', 'year': 2007, 'gdp': 61359.7, 'pop': 4398940.0},
 {'name': 'Ireland', 'year': 2008, 'gdp': 61262.1, 'pop': 4489540.0},
 {'name': 'Ireland', 'year': 2009, 'gdp': 52105.2, 'pop': 4535380.0},
 {'name': 'Ireland', 'year': 2010, 'gdp': 48715.2, 'pop': 4560160.0},
 {'name': 'Ireland', 'year': 2011, 'gdp': 51848.9, 'pop': 4580080.0},
 {'name': 'Ireland', 'year': 2012, 'gdp': 48917.9, 'pop': 4599530.0},
 {'name': 'Ireland', 'year': 2013, 'gdp': 51590.2, 'pop': 4623820.0},
 {'name': 'Ireland', 'year': 2014, 'gdp': 55493.0, 'pop': 4657740.0},
 {'name': 'Ireland', 'year': 2015, 'gdp': 61995.4, 'pop': 4701960.0},
 {'name': 'Ireland', 'year': 2016, 'gdp': 63197.1, 'pop': 4755340.0},
 {'name': 'Ireland', 'year': 2017, 'gdp': 69649.9, 'pop': 4807390.0},
 {'name': 'Ireland', 'year': 2018, 'gdp': 78806.4, 'pop': 4853510.0},
 {'name': 'Ireland', 'year': 2019, 'gdp': nan, 'pop': nan}]

In [11]:
list(Country.select(
    Country.name, 
    GDP.year,
    GDP.value.alias('gdp'),
    Population.value.alias('pop'),
).where(
    Country.id == 110
).join(
    GDP, 
    on=Country.id == GDP.country_id
).join(
    Population, 
    on=(Country.id == Population.country_id) & (GDP.year == Population.year)
).limit(10).dicts())


Out[11]:
[{'name': 'Ireland', 'year': 1960, 'gdp': 685.615, 'pop': 2828600.0},
 {'name': 'Ireland', 'year': 1961, 'gdp': 739.276, 'pop': 2824400.0},
 {'name': 'Ireland', 'year': 1962, 'gdp': 797.006, 'pop': 2836050.0},
 {'name': 'Ireland', 'year': 1963, 'gdp': 852.135, 'pop': 2852650.0},
 {'name': 'Ireland', 'year': 1964, 'gdp': 965.135, 'pop': 2866550.0},
 {'name': 'Ireland', 'year': 1965, 'gdp': 1023.77, 'pop': 2877300.0},
 {'name': 'Ireland', 'year': 1966, 'gdp': 1074.51, 'pop': 2888800.0},
 {'name': 'Ireland', 'year': 1967, 'gdp': 1152.01, 'pop': 2902450.0},
 {'name': 'Ireland', 'year': 1968, 'gdp': 1124.52, 'pop': 2915550.0},
 {'name': 'Ireland', 'year': 1969, 'gdp': 1291.35, 'pop': 2932650.0}]

In [12]:
df = pd.DataFrame(list(Country.select(
    Country.name, 
    GDP.year,
    GDP.value.alias('gdp'),
    Population.value.alias('pop'),
    LifeExpectancy.value.alias('le'),
).where(
    Country.id == 110
).join(
    GDP, 
    on=Country.id == GDP.country_id
).join(
    Population, 
    on=(Country.id == Population.country_id) & (GDP.year == Population.year)
).join(
    LifeExpectancy, 
    on=(Country.id == LifeExpectancy.country_id) & (GDP.year == LifeExpectancy.year)
).dicts()))
df.set_index('year', inplace=True)
del df['name']

In [13]:
df.plot(subplots=True, figsize=(10,10));



In [14]:
c = Country.select(
    Country.name, 
    GDP.year,
    GDP.value.alias('gdp'),
    Population.value.alias('pop'),
    LifeExpectancy.value.alias('le'),
).where(
    Country.id == 59
).join(
    GDP, 
    on=Country.id == GDP.country_id
).join(
    Population, 
    on=(Country.id == Population.country_id) & (GDP.year == Population.year)
).join(
    LifeExpectancy, 
    on=(Country.id == LifeExpectancy.country_id) & (GDP.year == LifeExpectancy.year)
)

In [15]:
cur = db.cursor()
print(cur.mogrify(*c.sql()))


b'SELECT "t1"."name", "t2"."year", "t2"."value" AS "gdp", "t3"."value" AS "pop", "t4"."value" AS "le" FROM "country" AS "t1" INNER JOIN "gdp" AS "t2" ON ("t1"."id" = "t2"."country_id") INNER JOIN "population" AS "t3" ON (("t1"."id" = "t3"."country_id") AND ("t2"."year" = "t3"."year")) INNER JOIN "lifeexpectancy" AS "t4" ON (("t1"."id" = "t4"."country_id") AND ("t2"."year" = "t4"."year")) WHERE ("t1"."id" = 59)'

In [16]:
df = pd.DataFrame(list(GDP.select(
    GDP.year,
    GDP.value.alias('gdp'),
    Population.value.alias('pop'),
    LifeExpectancy.value.alias('le'),
).join(
    Population, 
    on=(GDP.year == Population.year) & (GDP.country_id == Population.country_id)
).join(
    LifeExpectancy, 
    on=(GDP.year == LifeExpectancy.year) & (GDP.country_id == LifeExpectancy.country_id)
).join(
    Country, 
    on=GDP.country_id == Country.id
).where(
    Country.name == 'United Kingdom'
).dicts()))

df.set_index('year', inplace=True)
df.head()


Out[16]:
gdp pop le
year
1960 1397.59 52400000.0 71.1268
1961 1472.39 52800000.0 70.8781
1962 1525.78 53250000.0 70.9268
1963 1613.46 53650000.0 70.8268
1964 1748.29 54000000.0 71.6244

In [17]:
df.plot(subplots=True, figsize=(10, 10));



In [18]:
df = pd.DataFrame(list(GDP.select(
    Country.name.alias('country'),
    GDP.year,
    GDP.value.alias('gdp'),
    Population.value.alias('pop'),
    LifeExpectancy.value.alias('le'),
).join(
    Population, 
    on=(GDP.year == Population.year) & (GDP.country_id == Population.country_id)
).join(
    LifeExpectancy, 
    on=(GDP.year == LifeExpectancy.year) & (GDP.country_id == LifeExpectancy.country_id)
).join(
    Country, 
    on=GDP.country_id == Country.id
).dicts()))

df.head()


Out[18]:
country year gdp pop le
0 Aruba 1960 NaN 54211.0 65.662
1 Aruba 1961 NaN 55438.0 66.074
2 Aruba 1962 NaN 56225.0 66.444
3 Aruba 1963 NaN 56695.0 66.787
4 Aruba 1964 NaN 57032.0 67.113

In [19]:
countries = {
    'United States', 
    'China',  
    'India'
}

keys = ('pop', 'le', 'gdp')

fig, axes = pl.subplots(3, 1, figsize=(10, 10))

for country, group in df.groupby('country'): 
    if country in countries: 
        for ax, key in zip(axes, keys):
            ax.plot(group.year, group[key], label=country)
            
for ax, key in zip(axes, keys): 
    pl.sca(ax)
    pl.title(key)
    pl.legend()



In [20]:
df.describe()


Out[20]:
year gdp pop le
count 15840.000000 12057.000000 1.540900e+04 13997.000000
mean 1989.500000 7624.946187 2.078865e+08 63.700224
std 17.318649 15255.156074 6.867796e+08 11.188258
min 1960.000000 34.790600 3.893000e+03 18.907000
25% 1974.750000 502.757000 9.268410e+05 55.606000
50% 1989.500000 1760.310000 6.418770e+06 66.479200
75% 2004.250000 7152.380000 4.244900e+07 72.144000
max 2019.000000 189171.000000 7.594270e+09 85.417100

In [21]:
x = 'gdp'# per capita'
y = 'le'
s = 'pop'
do_legend = True

def pw_scatter(df, year):
    current_palette = sns.color_palette()
    alpha = 0.25
    for i, c in enumerate(countries):
        country = Country.select().where(Country.name == c).get()
        gdp = GDP.select().where(GDP.country_id == country, GDP.year == year).get()
        pop = Population.select().where(Population.country_id == country, Population.year == year).get()
        le = LifeExpectancy.select().where(LifeExpectancy.country_id == country, LifeExpectancy.year == year).get()
        ax.plot(gdp.value, le.value, marker='o', linestyle='', color=current_palette[i], ms=pop.value / 1e7, label=c, alpha=alpha)
    ax.set_xlabel(x)
    ax.set_ylabel(y)
    ax.set_xlim([0, 75000])
    ax.set_ylim([df[y].min()*0.9, df[y].max()*1.1])
    ax.set_title(year)

# Animated version
fig, ax = pl.subplots(figsize=[15 ,10])
#countries = ['United Kingdom', 'France', 'Germany']

for year in range(1960, 2017):
    pw_scatter(df, year)

    if do_legend:
        lgnd = ax.legend()
        for i in range(len(countries)):
            lgnd.legendHandles[i]._legmarker.set_markersize(20)
            lgnd.legendHandles[i]._legmarker.set_alpha(1.0)
        do_legend = False

    display.clear_output(wait=True)
    display.display(pl.gcf())
    sleep(0.02)



In [ ]:


In [ ]:


In [ ]: