#Bibliothéques :
import numpy as np
import pandas as pd
import folium
#Chargement des données
df_deaths = pd.read_csv('https://raw.githubusercontent.com/Fuenfgeld/DatamanagementAndArchiving/main/GeoCodingTutorial/cholera_deaths.csv')
FID | DEATHS | LON | LAT | |
---|---|---|---|---|
0 | 0 | 3 | -0.137930 | 51.513418 |
1 | 1 | 2 | -0.137883 | 51.513361 |
2 | 2 | 1 | -0.137853 | 51.513317 |
df_pumps = pd.read_csv('https://raw.githubusercontent.com/Fuenfgeld/DatamanagementAndArchiving/main/GeoCodingTutorial/johnsnow_pumps.csv')
# Exploration des données
df_deaths.head()
FID | DEATHS | LON | LAT | |
---|---|---|---|---|
0 | 0 | 3 | -0.137930 | 51.513418 |
1 | 1 | 2 | -0.137883 | 51.513361 |
2 | 2 | 1 | -0.137853 | 51.513317 |
3 | 3 | 1 | -0.137812 | 51.513262 |
4 | 4 | 4 | -0.137767 | 51.513204 |
df_pumps.head()
FID | LON | LAT | |
---|---|---|---|
0 | 250 | -0.136668 | 51.513341 |
1 | 251 | -0.139586 | 51.513876 |
2 | 252 | -0.139671 | 51.514906 |
3 | 253 | -0.131630 | 51.512354 |
4 | 254 | -0.133594 | 51.512139 |
# Recherche de données nulles
df_deaths.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 250 entries, 0 to 249 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 FID 250 non-null int64 1 DEATHS 250 non-null int64 2 LON 250 non-null float64 3 LAT 250 non-null float64 dtypes: float64(2), int64(2) memory usage: 7.9 KB
df_pumps.info ()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 8 entries, 0 to 7 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 FID 8 non-null int64 1 LON 8 non-null float64 2 LAT 8 non-null float64 dtypes: float64(2), int64(1) memory usage: 320.0 bytes
df_deaths.describe()
FID | DEATHS | LON | LAT | |
---|---|---|---|---|
count | 250.000000 | 250.000000 | 250.000000 | 250.000000 |
mean | 124.500000 | 1.956000 | -0.136415 | 51.513416 |
std | 72.312977 | 1.573521 | 0.001568 | 0.000753 |
min | 0.000000 | 1.000000 | -0.140074 | 51.511856 |
25% | 62.250000 | 1.000000 | -0.137633 | 51.512871 |
50% | 124.500000 | 1.000000 | -0.136288 | 51.513379 |
75% | 186.750000 | 2.000000 | -0.135333 | 51.513956 |
max | 249.000000 | 15.000000 | -0.132933 | 51.515834 |
# Création liste longitude, latitude et nombre de morts
coordinates_p = df_pumps[["LAT","LON"]].values.tolist()
coordinates_d = df_deaths[["LAT","LON"]].values.tolist()
totaldeaths = df_deaths[["DEATHS"]].values.tolist()
len(totaldeaths)
250
#ciblage de la carte
import folium
map = folium.Map(location=[51.5132119,-0.13666], tiles='Stamen Toner', zoom_start=17)
for i in range(0, len(coordinates_d)):
folium.RegularPolygonMarker(coordinates_d[i], radius = totaldeaths[i], fill_color = "red", fill_opacity = 0.5, number_of_sides = 12).add_to(map)
#Generation de la carte
map
for i in range(0, len(coordinates_p)):
folium.RegularPolygonMarker(coordinates_p[i], radius = 10, \
fill_color = "blue", fill_opacity = 1
).add_to(map)
map