In [158]:
import pandas as pd

Chargement des données :


In [131]:
communes = pd.read_csv('data/correspondance-code-insee-code-postal.csv', 
                       sep=";", 
                       encoding='utf-8')

In [132]:
communes.head()


Out[132]:
Code INSEE Code Postal Commune Département Région Statut Altitude Moyenne Superficie Population geo_point_2d geo_shape ID Geogla Code Commune Code Canton Code Arrondissement Code Département Code Région
0 39007 39270 ALIEZE JURA FRANCHE-COMTE Commune simple 587.0 582.0 0.2 46.5850122581, 5.58578294146 {"type": "Polygon", "coordinates": [[[5.595422... 8414 7 21 2 39 43
1 88086 88600 CHAMP-LE-DUC VOSGES LORRAINE Commune simple 454.0 396.0 0.5 48.1923697643, 6.72962889202 {"type": "Polygon", "coordinates": [[[6.728855... 3824 86 3 1 88 41
2 62627 62490 NOYELLES-SOUS-BELLONNE PAS-DE-CALAIS NORD-PAS-DE-CALAIS Commune simple 49.0 426.0 0.8 50.3091545259, 3.02186108116 {"type": "Polygon", "coordinates": [[[3.015250... 3944 627 46 1 62 31
3 14020 14370 ARGENCES CALVADOS BASSE-NORMANDIE Commune simple 33.0 987.0 3.5 49.1339723471, -0.158515066328 {"type": "Polygon", "coordinates": [[[-0.13271... 16086 20 34 2 14 25
4 11091 11230 CHALABRE AUDE LANGUEDOC-ROUSSILLON Chef-lieu canton 455.0 1605.0 1.1 42.9817651679, 2.01049024009 {"type": "Polygon", "coordinates": [[[2.014921... 14175 91 11 2 11 91

La ville avec le plus de population ?

Tips : utilisation de la fonction .max()


In [133]:
communes[communes.Population == communes.Population.max()]


Out[133]:
Code INSEE Code Postal Commune Département Région Statut Altitude Moyenne Superficie Population geo_point_2d geo_shape ID Geogla Code Commune Code Canton Code Arrondissement Code Département Code Région
23755 31555 31000/31100/31200/31300/31400/31500 TOULOUSE HAUTE-GARONNE MIDI-PYRENEES Préfecture de région 148.0 11809.0 440.2 43.5963814303, 1.43167293364 {"type": "Polygon", "coordinates": [[[1.461403... 1420 555 99 3 31 73

What's the problem ?

Paris devrait etre la ville avec le plus de population et pourtant ce n'est pas le cas...


In [ ]:


In [134]:
communes[communes.Commune == "PARIS"] # pas de résultat...


Out[134]:
Code INSEE Code Postal Commune Département Région Statut Altitude Moyenne Superficie Population geo_point_2d geo_shape ID Geogla Code Commune Code Canton Code Arrondissement Code Département Code Région

In [135]:
communes[communes.Commune.str.contains("PARIS")] # recherche les villes contenant "PARIS" (égal LIKE en SQL)


Out[135]:
Code INSEE Code Postal Commune Département Région Statut Altitude Moyenne Superficie Population geo_point_2d geo_shape ID Geogla Code Commune Code Canton Code Arrondissement Code Département Code Région
526 75118 75018 PARIS-18E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 57.0 604.0 200.6 48.8927350746, 2.34871193387 {"type": "Polygon", "coordinates": [[[2.327115... 36584 118 32 1 75 11
1416 75113 75013 PARIS-13E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 46.0 713.0 182.0 48.8287176845, 2.36246822852 {"type": "Polygon", "coordinates": [[[2.343909... 36579 113 27 1 75 11
2977 75116 75016 PARIS-16E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 43.0 1641.0 169.4 48.8603987604, 2.2620995594 {"type": "Polygon", "coordinates": [[[2.262784... 36580 116 30 1 75 11
4155 75107 75007 PARIS-7E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 34.0 411.0 57.4 48.8560825982, 2.31243868773 {"type": "Polygon", "coordinates": [[[2.316633... 12976 107 21 1 75 11
8267 75117 75017 PARIS-17E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 40.0 563.0 168.5 48.8873371665, 2.30748555949 {"type": "Polygon", "coordinates": [[[2.295145... 36583 117 31 1 75 11
8520 75115 75015 PARIS-15E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 40.0 846.0 236.5 48.8401554186, 2.29355937244 {"type": "Polygon", "coordinates": [[[2.301320... 36581 115 29 1 75 11
10136 75109 75009 PARIS-9E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 44.0 218.0 60.3 48.8768961624, 2.33746024139 {"type": "Polygon", "coordinates": [[[2.325754... 16867 109 23 1 75 11
10750 75120 75020 PARIS-20E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 80.0 596.0 197.1 48.8631867774, 2.40081982673 {"type": "Polygon", "coordinates": [[[2.415973... 36585 120 34 1 75 11
12125 75108 75008 PARIS-8E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 39.0 385.0 40.3 48.8725272666, 2.31258256042 {"type": "Polygon", "coordinates": [[[2.320781... 9859 108 22 1 75 11
12809 75104 75004 PARIS-4E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 33.0 160.0 28.2 48.854228282, 2.35736193814 {"type": "Polygon", "coordinates": [[[2.364320... 11667 104 18 1 75 11
13304 75119 75019 PARIS-19E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 63.0 674.0 184.8 48.886868623, 2.38469432787 {"type": "Polygon", "coordinates": [[[2.377012... 36587 119 33 1 75 11
15953 75101 75001 PARIS-1ER-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 33.0 181.0 17.6 48.8626304852, 2.33629344655 {"type": "Polygon", "coordinates": [[[2.344559... 36588 101 15 1 75 11
17060 38485 38170 SEYSSINET-PARISET ISERE RHONE-ALPES Commune simple 585.0 1076.0 12.2 45.1731193462, 5.66971556945 {"type": "Polygon", "coordinates": [[[5.638726... 28194 485 56 1 38 82
18439 75106 75006 PARIS-6E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 40.0 215.0 43.1 48.8489680919, 2.33267089859 {"type": "Polygon", "coordinates": [[[2.336591... 9608 106 20 1 75 11
19544 75112 75012 PARIS-12E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 49.0 1636.0 142.9 48.8351562307, 2.41980703497 {"type": "Polygon", "coordinates": [[[2.461247... 668 112 26 1 75 11
20620 75110 75010 PARIS-10E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 45.0 288.0 95.9 48.8760285569, 2.36111290456 {"type": "Polygon", "coordinates": [[[2.363856... 8429 110 24 1 75 11
23264 75111 75011 PARIS-11E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 43.0 366.0 152.7 48.8594154976, 2.37874106024 {"type": "Polygon", "coordinates": [[[2.399114... 36586 111 25 1 75 11
23321 75102 75002 PARIS-2E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 36.0 99.0 22.4 48.8679033789, 2.34410716666 {"type": "Polygon", "coordinates": [[[2.350834... 14312 102 16 1 75 11
23565 75103 75003 PARIS-3E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 35.0 116.0 35.7 48.8630541318, 2.35936105897 {"type": "Polygon", "coordinates": [[[2.368401... 36582 103 17 1 75 11
24388 82137 82160 PARISOT TARN-ET-GARONNE MIDI-PYRENEES Commune simple 351.0 2804.0 0.5 44.2617881809, 1.86571509225 {"type": "Polygon", "coordinates": [[[1.845927... 24331 137 20 2 82 73
25453 75114 75014 PARIS-14E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 63.0 560.0 137.2 48.8289932116, 2.32710088326 {"type": "Polygon", "coordinates": [[[2.343909... 32539 114 28 1 75 11
25556 75105 75005 PARIS-5E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Chef-lieu canton 42.0 252.0 61.5 48.8445086596, 2.34985938556 {"type": "Polygon", "coordinates": [[[2.365944... 13706 105 19 1 75 11
25663 77514 77270 VILLEPARISIS SEINE-ET-MARNE ILE-DE-FRANCE Commune simple 71.0 830.0 24.1 48.9419981883, 2.61700200964 {"type": "Polygon", "coordinates": [[[2.616211... 19927 514 6 5 77 11
26116 95176 95240 CORMEILLES-EN-PARISIS VAL-D'OISE ILE-DE-FRANCE Chef-lieu canton 88.0 849.0 22.6 48.9682249677, 2.19921349468 {"type": "Polygon", "coordinates": [[[2.205858... 34995 176 5 1 95 11
27305 39189 39500 DAMPARIS JURA FRANCHE-COMTE Commune simple 203.0 885.0 2.8 47.0709486148, 5.40719104716 {"type": "Polygon", "coordinates": [[[5.430778... 30765 189 33 1 39 43
29535 62826 62520 LE TOUQUET-PARIS-PLAGE PAS-DE-CALAIS NORD-PAS-DE-CALAIS Commune simple 12.0 1523.0 4.8 50.5083984501, 1.59923820583 {"type": "Polygon", "coordinates": [[[1.634870... 17106 826 37 4 62 31
30088 71343 71150 PARIS-L'HOPITAL SAONE-ET-LOIRE BOURGOGNE Commune simple 316.0 276.0 0.2 46.9127885575, 4.63958573146 {"type": "Polygon", "coordinates": [[[4.636767... 19725 343 13 1 71 26
33829 95241 95190 FONTENAY-EN-PARISIS VAL-D'OISE ILE-DE-FRANCE Commune simple 112.0 1096.0 1.9 49.0501196631, 2.44539371928 {"type": "Polygon", "coordinates": [[[2.438197... 25433 241 15 2 95 11
34879 81202 81310 PARISOT TARN MIDI-PYRENEES Commune simple 195.0 2871.0 0.8 43.8046304256, 1.83642655485 {"type": "Polygon", "coordinates": [[[1.854468... 4987 202 18 1 81 73

In [136]:
communes.Statut.value_counts()


Out[136]:
Commune simple          33421
Chef-lieu canton         2980
Sous-préfecture           240
Préfecture                 74
Préfecture de région       26
Capitale d'état             1
Name: Statut, dtype: int64

In [ ]:


In [137]:
communes[communes.Statut == u"Capitale d'état"]   # Unicode


Out[137]:
Code INSEE Code Postal Commune Département Région Statut Altitude Moyenne Superficie Population geo_point_2d geo_shape ID Geogla Code Commune Code Canton Code Arrondissement Code Département Code Région
15953 75101 75001 PARIS-1ER-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 33.0 181.0 17.6 48.8626304852, 2.33629344655 {"type": "Polygon", "coordinates": [[[2.344559... 36588 101 15 1 75 11

Seul le premier arrondissement est considéré comme la capital. Il va falloir changer ça :

Pour ce faire on va prendre tout les Codes Postaux de paris et changer le status


In [ ]:


In [138]:
code_paris = ['75101', '75102', '75103','75104','75105','75106','75107','75108',
               '75109','75110','75111','75112','75113','75114','75115','75116',
               '75117','75118','75119','75120']

In [139]:
communes.loc[communes['Code INSEE'].isin(code_paris), 'Statut'] = u"Capitale d'état"
# Pour toutes les lignes qui on le Code INSEE dans notre liste, on va changer la valeur de Statut par "Capitale d'état"

In [140]:
communes[communes.Statut == u"Capitale d'état"]  # Tous les arrondissement de Paris


Out[140]:
Code INSEE Code Postal Commune Département Région Statut Altitude Moyenne Superficie Population geo_point_2d geo_shape ID Geogla Code Commune Code Canton Code Arrondissement Code Département Code Région
526 75118 75018 PARIS-18E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 57.0 604.0 200.6 48.8927350746, 2.34871193387 {"type": "Polygon", "coordinates": [[[2.327115... 36584 118 32 1 75 11
1416 75113 75013 PARIS-13E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 46.0 713.0 182.0 48.8287176845, 2.36246822852 {"type": "Polygon", "coordinates": [[[2.343909... 36579 113 27 1 75 11
2977 75116 75016 PARIS-16E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 43.0 1641.0 169.4 48.8603987604, 2.2620995594 {"type": "Polygon", "coordinates": [[[2.262784... 36580 116 30 1 75 11
4155 75107 75007 PARIS-7E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 34.0 411.0 57.4 48.8560825982, 2.31243868773 {"type": "Polygon", "coordinates": [[[2.316633... 12976 107 21 1 75 11
8267 75117 75017 PARIS-17E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 40.0 563.0 168.5 48.8873371665, 2.30748555949 {"type": "Polygon", "coordinates": [[[2.295145... 36583 117 31 1 75 11
8520 75115 75015 PARIS-15E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 40.0 846.0 236.5 48.8401554186, 2.29355937244 {"type": "Polygon", "coordinates": [[[2.301320... 36581 115 29 1 75 11
10136 75109 75009 PARIS-9E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 44.0 218.0 60.3 48.8768961624, 2.33746024139 {"type": "Polygon", "coordinates": [[[2.325754... 16867 109 23 1 75 11
10750 75120 75020 PARIS-20E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 80.0 596.0 197.1 48.8631867774, 2.40081982673 {"type": "Polygon", "coordinates": [[[2.415973... 36585 120 34 1 75 11
12125 75108 75008 PARIS-8E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 39.0 385.0 40.3 48.8725272666, 2.31258256042 {"type": "Polygon", "coordinates": [[[2.320781... 9859 108 22 1 75 11
12809 75104 75004 PARIS-4E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 33.0 160.0 28.2 48.854228282, 2.35736193814 {"type": "Polygon", "coordinates": [[[2.364320... 11667 104 18 1 75 11
13304 75119 75019 PARIS-19E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 63.0 674.0 184.8 48.886868623, 2.38469432787 {"type": "Polygon", "coordinates": [[[2.377012... 36587 119 33 1 75 11
15953 75101 75001 PARIS-1ER-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 33.0 181.0 17.6 48.8626304852, 2.33629344655 {"type": "Polygon", "coordinates": [[[2.344559... 36588 101 15 1 75 11
18439 75106 75006 PARIS-6E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 40.0 215.0 43.1 48.8489680919, 2.33267089859 {"type": "Polygon", "coordinates": [[[2.336591... 9608 106 20 1 75 11
19544 75112 75012 PARIS-12E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 49.0 1636.0 142.9 48.8351562307, 2.41980703497 {"type": "Polygon", "coordinates": [[[2.461247... 668 112 26 1 75 11
20620 75110 75010 PARIS-10E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 45.0 288.0 95.9 48.8760285569, 2.36111290456 {"type": "Polygon", "coordinates": [[[2.363856... 8429 110 24 1 75 11
23264 75111 75011 PARIS-11E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 43.0 366.0 152.7 48.8594154976, 2.37874106024 {"type": "Polygon", "coordinates": [[[2.399114... 36586 111 25 1 75 11
23321 75102 75002 PARIS-2E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 36.0 99.0 22.4 48.8679033789, 2.34410716666 {"type": "Polygon", "coordinates": [[[2.350834... 14312 102 16 1 75 11
23565 75103 75003 PARIS-3E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 35.0 116.0 35.7 48.8630541318, 2.35936105897 {"type": "Polygon", "coordinates": [[[2.368401... 36582 103 17 1 75 11
25453 75114 75014 PARIS-14E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 63.0 560.0 137.2 48.8289932116, 2.32710088326 {"type": "Polygon", "coordinates": [[[2.343909... 32539 114 28 1 75 11
25556 75105 75005 PARIS-5E-ARRONDISSEMENT PARIS ILE-DE-FRANCE Capitale d'état 42.0 252.0 61.5 48.8445086596, 2.34985938556 {"type": "Polygon", "coordinates": [[[2.365944... 13706 105 19 1 75 11

In [141]:
# Population de Paris :
communes[communes.Statut == u"Capitale d'état"]['Population'].sum()


Out[141]:
2234.1

Il semble que l'ensemble des villes ayant des arrondissement on ce problème :

- Marseille
- Lyon

Faire de même pour Marseille et Lyon (attention, ce ne sont pas des capitals, il faut trouver leurs statuts)


In [142]:
# Marseille
code_marseille = ['13201', '13202', '13203', '13204', '13205', '13206', '13207', '13208',
                   '13209', '13210', '13211', '13212', '13213', '13214', '13215', '13216']

communes.loc[communes['Code INSEE'].isin(code_marseille), 'Statut'] = u'Préfecture de région'

In [143]:
# Lyon
code_lyon = ['69001', '69002', '69003', '69004', '69005', '69006', '69007',
             '69008', '69009']

communes.loc[communes['Code INSEE'].isin(code_lyon), 'Statut'] = u'Préfecture de région'

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:

Les métropoles ?

Il semble qu'il n'y a pas d'informations sur les métropoles (manque d'informations), il va donc falloir trouver cette information :

  • Indiquer si la commune fait partie d'une métropole (variable booléen 0/1)
  • Indiquer le nom de la métrolple

In [144]:
# list of all code insee city in metropole
# Faire un copié / coller ;)
insee_metropole = {'59350' : 'Lille',
                '59013' : 'Lille',
                '59017' : 'Lille',
                '59044' : 'Lille',
                '59051' : 'Lille',
                '59056' : 'Lille',
                '59090' : 'Lille',
                '59098' : 'Lille',
                '59106' : 'Lille',
                '59128' : 'Lille',
                '59143' : 'Lille',
                '59146' : 'Lille',
                '59152' : 'Lille',
                '59163' : 'Lille',
                '59173' : 'Lille',
                '59670' : 'Lille',
                '59193' : 'Lille',
                '59195' : 'Lille',
                '59196' : 'Lille',
                '59201' : 'Lille',
                '59202' : 'Lille',
                '59208' : 'Lille',
                '59220' : 'Lille',
                '59247' : 'Lille',
                '59250' : 'Lille',
                '59252' : 'Lille',
                '59256' : 'Lille',
                '59275' : 'Lille',
                '59278' : 'Lille',
                '59279' : 'Lille',
                '59281' : 'Lille',
                '59286' : 'Lille',
                '59299' : 'Lille',
                '59303' : 'Lille',
                '59316' : 'Lille',
                '59317' : 'Lille',
                '59320' : 'Lille',
                '59328' : 'Lille',
                '59332' : 'Lille',
                '59339' : 'Lille',
                '59343' : 'Lille',
                '59346' : 'Lille',
                '59352' : 'Lille',
                '59356' : 'Lille',
                '59360' : 'Lille',
                '59367' : 'Lille',
                '59368' : 'Lille',
                '59378' : 'Lille',
                '59386' : 'Lille',
                '59388' : 'Lille',
                '59410' : 'Lille',
                '59421' : 'Lille',
                '59426' : 'Lille',
                '59437' : 'Lille',
                '59457' : 'Lille',
                '59458' : 'Lille',
                '59470' : 'Lille',
                '59482' : 'Lille',
                '59507' : 'Lille',
                '59508' : 'Lille',
                '59512' : 'Lille',
                '59522' : 'Lille',
                '59523' : 'Lille',
                '59524' : 'Lille',
                '59527' : 'Lille',
                '59550' : 'Lille',
                '59553' : 'Lille',
                '59560' : 'Lille',
                '59566' : 'Lille',
                '59585' : 'Lille',
                '59598' : 'Lille',
                '59599' : 'Lille',
                '59602' : 'Lille',
                '59609' : 'Lille',
                '59611' : 'Lille',
                '59009' : 'Lille',
                '59636' : 'Lille',
                '59643' : 'Lille',
                '59646' : 'Lille',
                '59648' : 'Lille',
                '59650' : 'Lille',
                '59653' : 'Lille',
                '59656' : 'Lille',
                '59658' : 'Lille',
                '59660' : 'Lille',
                '33063' : 'Bordeaux',
                '33003' : 'Bordeaux',
                '33004' : 'Bordeaux',
                '33013' : 'Bordeaux',
                '33032' : 'Bordeaux',
                '33039' : 'Bordeaux',
                '33056' : 'Bordeaux',
                '33065' : 'Bordeaux',
                '33075' : 'Bordeaux',
                '33096' : 'Bordeaux',
                '33119' : 'Bordeaux',
                '33162' : 'Bordeaux',
                '33167' : 'Bordeaux',
                '33192' : 'Bordeaux',
                '33069' : 'Bordeaux',
                '33200' : 'Bordeaux',
                '33519' : 'Bordeaux',
                '33249' : 'Bordeaux',
                '33273' : 'Bordeaux',
                '33281' : 'Bordeaux',
                '33312' : 'Bordeaux',
                '33318' : 'Bordeaux',
                '33376' : 'Bordeaux',
                '33434' : 'Bordeaux',
                '33449' : 'Bordeaux',
                '33487' : 'Bordeaux',
                '33522' : 'Bordeaux',
                '33550' : 'Bordeaux',
                '31555' : 'Toulouse',
                '31003' : 'Toulouse',
                '31022' : 'Toulouse',
                '31032' : 'Toulouse',
                '31044' : 'Toulouse',
                '31053' : 'Toulouse',
                '31056' : 'Toulouse',
                '31069' : 'Toulouse',
                '31088' : 'Toulouse',
                '31091' : 'Toulouse',
                '31116' : 'Toulouse',
                '31149' : 'Toulouse',
                '31150' : 'Toulouse',
                '31157' : 'Toulouse',
                '31163' : 'Toulouse',
                '31182' : 'Toulouse',
                '31184' : 'Toulouse',
                '31186' : 'Toulouse',
                '31205' : 'Toulouse',
                '31230' : 'Toulouse',
                '31282' : 'Toulouse',
                '31293' : 'Toulouse',
                '31351' : 'Toulouse',
                '31352' : 'Toulouse',
                '31355' : 'Toulouse',
                '31389' : 'Toulouse',
                '31417' : 'Toulouse',
                '31418' : 'Toulouse',
                '31445' : 'Toulouse',
                '31467' : 'Toulouse',
                '31488' : 'Toulouse',
                '31490' : 'Toulouse',
                '31506' : 'Toulouse',
                '31541' : 'Toulouse',
                '31557' : 'Toulouse',
                '31561' : 'Toulouse',
                '31588' : 'Toulouse',
                '44109' : 'Nantes',
                '44009' : 'Nantes',
                '44018' : 'Nantes',
                '44020' : 'Nantes',
                '44024' : 'Nantes',
                '44026' : 'Nantes',
                '44035' : 'Nantes',
                '44047' : 'Nantes',
                '44074' : 'Nantes',
                '44094' : 'Nantes',
                '44101' : 'Nantes',
                '44114' : 'Nantes',
                '44120' : 'Nantes',
                '44143' : 'Nantes',
                '44150' : 'Nantes',
                '44162' : 'Nantes',
                '44166' : 'Nantes',
                '44171' : 'Nantes',
                '44190' : 'Nantes',
                '44172' : 'Nantes',
                '44194' : 'Nantes',
                '44198' : 'Nantes',
                '44204' : 'Nantes',
                '44215' : 'Nantes',
                '06088' : 'Nice',
                '06006' : 'Nice',
                '06009' : 'Nice',
                '06011' : 'Nice',
                '06013' : 'Nice',
                '06020' : 'Nice',
                '06021' : 'Nice',
                '06025' : 'Nice',
                '06027' : 'Nice',
                '06032' : 'Nice',
                '06033' : 'Nice',
                '06034' : 'Nice',
                '06042' : 'Nice',
                '06046' : 'Nice',
                '06055' : 'Nice',
                '06059' : 'Nice',
                '06060' : 'Nice',
                '06065' : 'Nice',
                '06064' : 'Nice',
                '06066' : 'Nice',
                '06072' : 'Nice',
                '06073' : 'Nice',
                '06074' : 'Nice',
                '06075' : 'Nice',
                '06080' : 'Nice',
                '06102' : 'Nice',
                '06103' : 'Nice',
                '06109' : 'Nice',
                '06110' : 'Nice',
                '06111' : 'Nice',
                '06114' : 'Nice',
                '06117' : 'Nice',
                '06119' : 'Nice',
                '06120' : 'Nice',
                '06121' : 'Nice',
                '06122' : 'Nice',
                '06123' : 'Nice',
                '06126' : 'Nice',
                '06127' : 'Nice',
                '06129' : 'Nice',
                '06144' : 'Nice',
                '06146' : 'Nice',
                '06147' : 'Nice',
                '06149' : 'Nice',
                '06151' : 'Nice',
                '06153' : 'Nice',
                '06156' : 'Nice',
                '06157' : 'Nice',
                '06159' : 'Nice',
                '76005' : 'Rouen',
                '76020' : 'Rouen',
                '76039' : 'Rouen',
                '76056' : 'Rouen',
                '76069' : 'Rouen',
                '76088' : 'Rouen',
                '76108' : 'Rouen',
                '76108' : 'Rouen',
                '76103' : 'Rouen',
                '76116' : 'Rouen',
                '76131' : 'Rouen',
                '76157' : 'Rouen',
                '76165' : 'Rouen',
                '76178' : 'Rouen',
                '76212' : 'Rouen',
                '76216' : 'Rouen',
                '76222' : 'Rouen',
                '76231' : 'Rouen',
                '76237' : 'Rouen',
                '76273' : 'Rouen',
                '76475' : 'Rouen',
                '76282' : 'Rouen',
                '76313' : 'Rouen',
                '76319' : 'Rouen',
                '76322' : 'Rouen',
                '76350' : 'Rouen',
                '76354' : 'Rouen',
                '76366' : 'Rouen',
                '76367' : 'Rouen',
                '76377' : 'Rouen',
                '76378' : 'Rouen',
                '76391' : 'Rouen',
                '76402' : 'Rouen',
                '76410' : 'Rouen',
                '76429' : 'Rouen',
                '76436' : 'Rouen',
                '76451' : 'Rouen',
                '76448' : 'Rouen',
                '76457' : 'Rouen',
                '76464' : 'Rouen',
                '76474' : 'Rouen',
                '76484' : 'Rouen',
                '76486' : 'Rouen',
                '76497' : 'Rouen',
                '76498' : 'Rouen',
                '76513' : 'Rouen',
                '76514' : 'Rouen',
                '76536' : 'Rouen',
                '76540' : 'Rouen',
                '76550' : 'Rouen',
                '76558' : 'Rouen',
                '76560' : 'Rouen',
                '76561' : 'Rouen',
                '76575' : 'Rouen',
                '76591' : 'Rouen',
                '76599' : 'Rouen',
                '76614' : 'Rouen',
                '76617' : 'Rouen',
                '76631' : 'Rouen',
                '76634' : 'Rouen',
                '76636' : 'Rouen',
                '76640' : 'Rouen',
                '76608' : 'Rouen',
                '76681' : 'Rouen',
                '76682' : 'Rouen',
                '76705' : 'Rouen',
                '76709' : 'Rouen',
                '76717' : 'Rouen',
                '76750' : 'Rouen',
                '76753' : 'Rouen',
                '76759' : 'Rouen',
                '67043' : 'Strasbourg',
                '67049' : 'Strasbourg',
                '67118' : 'Strasbourg',
                '67119' : 'Strasbourg',
                '67124' : 'Strasbourg',
                '67131' : 'Strasbourg',
                '67137' : 'Strasbourg',
                '67152' : 'Strasbourg',
                '67204' : 'Strasbourg',
                '67212' : 'Strasbourg',
                '67218' : 'Strasbourg',
                '67256' : 'Strasbourg',
                '67267' : 'Strasbourg',
                '67268' : 'Strasbourg',
                '67296' : 'Strasbourg',
                '67309' : 'Strasbourg',
                '67326' : 'Strasbourg',
                '67343' : 'Strasbourg',
                '67350' : 'Strasbourg',
                '67365' : 'Strasbourg',
                '67378' : 'Strasbourg',
                '67389' : 'Strasbourg',
                '67447' : 'Strasbourg',
                '67471' : 'Strasbourg',
                '67482' : 'Strasbourg',
                '67506' : 'Strasbourg',
                '67519' : 'Strasbourg',
                '67551' : 'Strasbourg',
                '38185' : 'Grenoble',
                '38057' : 'Grenoble',
                '38059' : 'Grenoble',
                '38068' : 'Grenoble',
                '38071' : 'Grenoble',
                '38111' : 'Grenoble',
                '38126' : 'Grenoble',
                '38150' : 'Grenoble',
                '38151' : 'Grenoble',
                '38158' : 'Grenoble',
                '38169' : 'Grenoble',
                '38170' : 'Grenoble',
                '38179' : 'Grenoble',
                '38187' : 'Grenoble',
                '38188' : 'Grenoble',
                '38200' : 'Grenoble',
                '38229' : 'Grenoble',
                '38235' : 'Grenoble',
                '38252' : 'Grenoble',
                '38258' : 'Grenoble',
                '38271' : 'Grenoble',
                '38277' : 'Grenoble',
                '38279' : 'Grenoble',
                '38281' : 'Grenoble',
                '38309' : 'Grenoble',
                '38317' : 'Grenoble',
                '38325' : 'Grenoble',
                '38328' : 'Grenoble',
                '38364' : 'Grenoble',
                '38382' : 'Grenoble',
                '38388' : 'Grenoble',
                '38421' : 'Grenoble',
                '38423' : 'Grenoble',
                '38436' : 'Grenoble',
                '38445' : 'Grenoble',
                '38471' : 'Grenoble',
                '38472' : 'Grenoble',
                '38474' : 'Grenoble',
                '38478' : 'Grenoble',
                '38485' : 'Grenoble',
                '38486' : 'Grenoble',
                '38516' : 'Grenoble',
                '38524' : 'Grenoble',
                '38528' : 'Grenoble',
                '38529' : 'Grenoble',
                '38533' : 'Grenoble',
                '38540' : 'Grenoble',
                '38545' : 'Grenoble',
                '38562' : 'Grenoble',
                '34172' : 'Montpellier',
                '34022' : 'Montpellier',
                '34027' : 'Montpellier',
                '34057' : 'Montpellier',
                '34058' : 'Montpellier',
                '34077' : 'Montpellier',
                '34087' : 'Montpellier',
                '34088' : 'Montpellier',
                '34090' : 'Montpellier',
                '34095' : 'Montpellier',
                '34116' : 'Montpellier',
                '34120' : 'Montpellier',
                '34123' : 'Montpellier',
                '34129' : 'Montpellier',
                '34134' : 'Montpellier',
                '34164' : 'Montpellier',
                '34169' : 'Montpellier',
                '34179' : 'Montpellier',
                '34198' : 'Montpellier',
                '34202' : 'Montpellier',
                '34217' : 'Montpellier',
                '34227' : 'Montpellier',
                '34244' : 'Montpellier',
                '34249' : 'Montpellier',
                '34256' : 'Montpellier',
                '34259' : 'Montpellier', #Saint-Georges-d'Orques(34680) from wiki -> 34259
                '34270' : 'Montpellier',
                '34295' : 'Montpellier',
                '34307' : 'Montpellier',
                '34327' : 'Montpellier',
                '34337' : 'Montpellier',
                '35238' : 'Rennes',
                '35001' : 'Rennes',
                '35022' : 'Rennes',
                '35024' : 'Rennes',
                '35032' : 'Rennes',
                '35039' : 'Rennes',
                '35047' : 'Rennes',
                '35051' : 'Rennes',
                '35055' : 'Rennes',
                '35058' : 'Rennes',
                '35059' : 'Rennes',
                '35065' : 'Rennes',
                '35066' : 'Rennes',
                '35076' : 'Rennes',
                '35079' : 'Rennes',
                '35080' : 'Rennes',
                '35081' : 'Rennes',
                '35088' : 'Rennes',
                '35120' : 'Rennes',
                '35131' : 'Rennes',
                '35139' : 'Rennes',
                '35144' : 'Rennes',
                '35180' : 'Rennes',
                '35189' : 'Rennes',
                '35196' : 'Rennes',
                '35204' : 'Rennes',
                '35206' : 'Rennes',
                '35208' : 'Rennes',
                '35210' : 'Rennes',
                '35216' : 'Rennes',
                '35363' : 'Rennes',
                '35240' : 'Rennes',
                '35245' : 'Rennes',
                '35250' : 'Rennes',
                '35266' : 'Rennes',
                '35275' : 'Rennes',
                '35278' : 'Rennes',
                '35281' : 'Rennes',
                '35315' : 'Rennes',
                '35334' : 'Rennes',
                '35351' : 'Rennes',
                '35352' : 'Rennes',
                '35353' : 'Rennes',
                '29019' : 'Brest',
                '29011' : 'Brest',
                '29061' : 'Brest',
                '29069' : 'Brest',
                '29075' : 'Brest',
                '29189' : 'Brest',
                '29212' : 'Brest',
                '29235' : 'Brest'}

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [145]:
communes['metropole_name'] = None  # On initialise le nom de la métrole

In [146]:
# Utilisation d'un dictionnaire
# Permet de mapper ID / Valeur
# Pour chaque ligne on prend la valeur de Code Insee et on renvoit la valeur

communes['metropole_name'] = communes['Code INSEE'].apply(lambda x: insee_metropole.get(x))

In [147]:
communes['metropole_name'].head()


Out[147]:
0    None
1    None
2    None
3    None
4    None
Name: metropole_name, dtype: object

In [148]:
communes['metropole_name'].value_counts()


Out[148]:
Lille          85
Rouen          70
Nice           49
Grenoble       49
Rennes         43
Toulouse       37
Montpellier    31
Bordeaux       28
Strasbourg     28
Nantes         24
Brest           8
Name: metropole_name, dtype: int64

In [149]:
# Variable Booléen pour savoir si une commune est dans uné métropole : 
communes['is_metropole'] = 0 # Initialisation

In [150]:
# Si la ligne à une valeur dans metropole_name alors cette commune appartient à une métropole :
communes.loc[~pd.isnull(communes.metropole_name), 'is_metropole'] = 1 
# "~" = négation

In [151]:
communes.is_metropole.value_counts()


Out[151]:
0    36290
1      452
Name: is_metropole, dtype: int64

Selection de variables


In [152]:
colonnes_a_utiliser = ['Code INSEE', 'Statut', 'Altitude Moyenne', 'Superficie', 'is_metropole', 'metropole_name']

In [153]:
communes = communes[colonnes_a_utiliser] # Notre Dataframe à uniquement les colonnnes désirés
communes.head()


Out[153]:
Code INSEE Statut Altitude Moyenne Superficie is_metropole metropole_name
0 39007 Commune simple 587.0 582.0 0 None
1 88086 Commune simple 454.0 396.0 0 None
2 62627 Commune simple 49.0 426.0 0 None
3 14020 Commune simple 33.0 987.0 0 None
4 11091 Chef-lieu canton 455.0 1605.0 0 None

In [154]:
# Naming : 
communes.columns = ['COM', 'status', 'mean_altitude', 'superficie', 'is_metropole', 'metropole_name']
communes.head()


Out[154]:
COM status mean_altitude superficie is_metropole metropole_name
0 39007 Commune simple 587.0 582.0 0 None
1 88086 Commune simple 454.0 396.0 0 None
2 62627 Commune simple 49.0 426.0 0 None
3 14020 Commune simple 33.0 987.0 0 None
4 11091 Chef-lieu canton 455.0 1605.0 0 None

Extraction :


In [155]:
communes.to_csv('data/commune_metropole.csv', # Noms du fichiers dans le répertoire "data"
               index=False,                  # On ne souhaite pas extraire les index pandas (0, 1, 2 etc...)
               encoding='utf-8')             # Encoding lorsqu'il y a du texte dans nos données (important !)

In [159]:
# On test notre nouveau fichier
nouveau_fichier = pd.read_csv('data/commune_metropole.csv',
                             encoding="utf-8")

In [161]:
nouveau_fichier.head()


Out[161]:
COM status mean_altitude superficie is_metropole metropole_name
0 39007 Commune simple 587.0 582.0 0 NaN
1 88086 Commune simple 454.0 396.0 0 NaN
2 62627 Commune simple 49.0 426.0 0 NaN
3 14020 Commune simple 33.0 987.0 0 NaN
4 11091 Chef-lieu canton 455.0 1605.0 0 NaN

In [ ]: