La nouvelle carte des virus corona est téléchargée sur la page Web de chaque entreprise. À cet égard, je m'intéressais à des choses telles que la propagation géographique des maladies infectieuses et les cartes épidémiologiques. En attendant, il y avait quelque chose d'intéressant dans le projet datacamp, alors j'aimerais l'essayer. Je voudrais l'afficher sous forme de mémorandum. De plus, il est traduit en japonais par DeepL.
En 1854, le Dr John Snow a effectué une analyse spatiale informatisée en cartographiant le modèle et l'état des épidémies de choléra à Soho, Londres. Il a cartographié les morts dans le quartier et a décidé que la majorité se produisait autour d'un puits particulier et que les morts l'utilisaient. Non seulement c'était l'une des premières utilisations de la visualisation de données, mais en résolvant ce problème, il a établi une analyse spatiale et des épidémies modernes.
Ce projet Python réanalyse les données et recrée la célèbre carte de John Snow. Ce projet est conçu pour tester les connaissances des pandas et du Bokeh qui peuvent être apprises dans "Pandas Foundations" et "Interactive Data Visualization with Bokeh".
Le Dr John Snow (1813-1858) est un médecin britannique bien connu, largement connu comme une légende de l'histoire de la santé publique et un pionnier dans le développement de l'anesthésie. Certains disent même l'un des grands médecins de tous les temps.
En tant que principal défenseur de l'anesthésie et des soins hygiéniques, il a non seulement mené des expériences sur l'éther et le chloroforme, mais a également conçu le masque et sa méthode d'administration. Lors de la naissance des huitième et neuvième enfants de la reine Victoria en 1853 et 1857, sa propre administration de chloroforme rendit l'utilisation d'anesthésiques pendant l'accouchement généralement acceptée.
Mais, comme je vous le montrerai plus tard, toute sa vie n'a pas réussi. John Snow est reconnu comme l'un des fondateurs de l'épidémiologie moderne par une approche de données scientifique et assez moderne qui a identifié la source du choléra à Soho, Londres en 1854 (visualisation des données, espace). Certains le considèrent comme le fondateur de l'analyse, de la science des données en général et de nombreuses autres disciplines connexes), mais ce n'était pas toujours le cas. En fait, pendant longtemps, il a été simplement ignoré par la communauté scientifique et est aujourd'hui très souvent mythique.
Cette note non seulement redécouvre son «histoire de données», mais ré-analyse également les données qu'il a recueillies en 1854 pour recréer sa célèbre carte (également connue sous le nom de carte fantôme). ..
1.py
# Loading in the pandas module
# ... YOUR CODE FOR TASK 1 ...
import pandas as pd
# Reading in the data
deaths = pd.read_csv("datasets/deaths.csv")
# Print out the shape of the dataset
# ... YOUR CODE FOR TASK 1 ...
print(deaths.shape)
# Printing out the first 5 rows
# ... YOUR CODE FOR TASK 1 ...
print(deaths.head(5))
Le résultat est le suivant
(489, 3)
Death X coordinate Y coordinate
0 1 51.513418 -0.137930
1 1 51.513418 -0.137930
2 1 51.513418 -0.137930
3 1 51.513361 -0.137883
4 1 51.513361 -0.137883
Avant que John Snow ne découvre le choléra, le choléra était un habitué des rues bondées et insalubres de Londres. Lors de la troisième épidémie de choléra, le choléra était l'un des thèmes les plus étudiés (plus de 700 études et essais ont été publiés rien qu'à Londres entre 1839 et 1856), et presque tous les auteurs , Je pensais que la cause de l'épidémie de choléra était la maladie infectieuse et le «mauvais air».
Les travaux pionniers de John Snow sur l'anesthésie et les gaz l'ont conduit à soupçonner un modèle myasma de la maladie. À l'origine, il a formulé et publié la théorie selon laquelle le choléra se propage par l'eau et la nourriture dans un essai «À propos du style de transmission du choléra» (avant l'épidémie de 1849). Cet article a reçu des critiques négatives dans les revues médicales du Lancet et de Londres.
Nous savons qu'il avait raison, mais le dilemme du Dr Snow était de savoir comment le prouver. Sa première étape a été de vérifier les données Notre ensemble de données contient 489 lignes de données dans 3 colonnes, mais pour faciliter le travail avec l'ensemble de données, nous Nous allons d'abord apporter quelques modifications.
2.py
# Summarizing the content of deaths
# ... YOUR CODE FOR TASK 2 ...
deaths.info()
# Define the new names of your columns
newcols = {
'Death': 'death_count',
'X coordinate': 'x_latitude',
'Y coordinate': 'y_longitude'
}
# Rename your columns
# ... YOUR CODE FOR TASK 2 ...
deaths.rename(newcols)
# Describe the dataset
# ... YOUR CODE FOR TASK 2 ...
deaths.describe()
Le résultat est le suivant
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 489 entries, 0 to 488
Data columns (total 3 columns):
Death 489 non-null int64
X coordinate 489 non-null float64
Y coordinate 489 non-null float64
dtypes: float64(2), int64(1)
memory usage: 11.5 KB
Death X coordinate Y coordinate
count 489.0 489.000000 489.000000
mean 1.0 51.513398 -0.136403
std 0.0 0.000705 0.001503
min 1.0 51.511856 -0.140074
25% 1.0 51.512964 -0.137562
50% 1.0 51.513359 -0.136226
75% 1.0 51.513875 -0.135344
max 1.0 51.515834 -0.132933
Son travail a été largement ignoré car il était impensable qu'un seul homme puisse nier la théorie du miasme et prouver que tout le monde avait tort. C'était. Des collègues médecins ont dit: "John Snow, même si je ne sais rien!"
Comme déjà mentionné, la première tentative de John Snow s'est terminée par un examen négatif de la théorie du «miasme». Cependant, un critique a fait une suggestion utile quant aux preuves qui seraient convaincantes. L'épidémie de choléra à Soho, Londres, en 1854, a non seulement donné à Snow une opportunité de sauvetage, mais aussi une opportunité de tester et d'améliorer sa théorie. Mais qu'en est-il de la preuve finale qu'il avait raison?
Maintenant que nous savons comment John Snow l'a fait, obtenons les bonnes données.
3.py
# Create `locations` by subsetting only Latitude and Longitude from the dataset
locations = deaths[["x_latitude","y_longitude"]]
# Create `deaths_list` by transforming the DataFrame to list of lists
deaths_list = locations.values.tolist()
# Check the length of the list
# ... YOUR CODE FOR TASK 3 ...
len(deaths_list)
Le résultat est le suivant
489
Malheureusement, sa carte d'origine n'est pas disponible (elle n'existe peut-être pas). Cependant, vous pouvez voir la célèbre carte qu'il a dessinée en 1855, environ un an plus tard. Cette carte est également appelée carte fantôme car elle représente et visualise la mort. Nous avons également des données sur la façon dont John Snow l'a dessiné, alors utilisons la technologie moderne pour recréer sa carte.
4.py
# Plot the data on map (map location is provided) using folium and for loop for plotting all the points
import folium
map = folium.Map(location=[51.5132119,-0.13666], tiles='Stamen Toner', zoom_start=17)
for point in range(0, len(deaths)):
folium.CircleMarker(deaths_list[point], radius=8, color='red', fill=True, fill_color='red', opacity = 0.4).add_to(map)
map
Le résultat sera affiché sur la carte comme indiqué ci-dessous. folium est un module qui permet d'utiliser le dépliant en python.
Ce que John Snow a vu après avoir marqué les morts sur la carte n'était pas un motif aléatoire (également vu dans une reproduction de la carte fantôme). La plupart des décès étaient concentrés aux coins de Broad Street (maintenant Broadwick Street) et Cambridge Street (maintenant Lexington Street). Un groupe de morts autour de l'intersection de ces rues était à l'origine de l'épidémie, mais que s'est-il passé là-bas? Oui, c'est une pompe à eau. John Snow à l'époque avait déjà la théorie que le choléra se propage par l'eau, donc pour vérifier cela, il a marqué l'emplacement d'une pompe à eau à proximité sur la carte. Et c'était la grande image. En combinant l'emplacement des décès liés au choléra avec l'emplacement des pompes à eau, Snow a pu montrer que la majorité était concentrée autour d'une pompe à eau publique particulière sur Broad Street à Soho. .. En fin de compte, il a obtenu les preuves dont il avait besoin. Nous faisons maintenant de même pour ajouter des emplacements de pompe à notre jeu sur la carte fantôme.
5.py
# Import the data
pumps = pd.read_csv("datasets/pumps.csv")
# Subset the DataFrame and select just ['X coordinate', 'Y coordinate'] columns
locations_pumps = pumps[["X coordinate","Y coordinate"]]
# Transform the DataFrame to list of lists in form of ['X coordinate', 'Y coordinate'] pairs
pumps_list = locations_pumps.values.tolist()
# Create a for loop and plot the data using folium (use previous map + add another layer)
map1 = map
for point in range(0, len(pumps_list)):
folium.Marker(pumps_list[point], popup=pumps['Pump Name'][point]).add_to(map1)
map1
Ainsi, John Snow a finalement eu la preuve qu'il y avait un lien entre la mort à la suite de l'épidémie de choléra et peut-être une pompe à eau publique contaminée. Mais il ne s'est pas arrêté là, il a enquêté plus loin. Il cherchait des anomalies (ce que nous appelons maintenant des «valeurs aberrantes dans les données») et a trouvé deux endroits où personne n'est réellement mort. Le premier était une brasserie juste à côté de Broad Street, où j'ai découvert qu'ils buvaient principalement de la bière (en d'autres termes, la pompe était la source, pas l'eau de la pompe locale). Il soutient sa théorie selon laquelle il y en a). Le deuxième bâtiment qui n'est pas mort était un atelier près de Poland Street, où il a appris que leur source d'eau n'était pas une pompe sur Broad Street (ce qui a réaffirmé sa théorie). Les emplacements des deux bâtiments sont également indiqués sur la carte à gauche. Les fonctionnaires n'ont pas fait confiance à lui et à sa théorie parce qu'il était convaincu, mais ils ont enlevé la poignée de la pompe le lendemain, le 8 septembre 1854. John Snow a ensuite publié dans son célèbre livre la collecte chronologique de données sur les décès avant et après le pic de l'épidémie, mais ici nous analysons et comparons les effets de la non-gestion.
6.py
# Import the data the right way
dates = pd.read_csv("datasets/dates.csv",parse_dates=['date'])
print(dates.head())
# Set the Date when handle was removed (8th of September 1854)
handle_removed = pd.to_datetime('1854/9/8')
# Create new column `day_name` in `dates` DataFrame with names of the day
dates['day_name'] = dates.date.dt.weekday_name
# Create new column `handle` in `dates` DataFrame based on a Date the handle was removed
dates['handle'] = dates.date > handle_removed
# Check the dataset and datatypes
dates.info()
# Create a comparison of how many cholera deaths and attacks there were before and after the handle was removed
dates.groupby(['handle']).sum()
Le résultat est le suivant
order date attacks deaths
0 1 1854-08-19 1 1
1 2 1854-08-20 1 0
2 3 1854-08-21 1 2
3 4 1854-08-22 0 0
4 5 1854-08-23 1 0
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 43 entries, 0 to 42
Data columns (total 6 columns):
order 43 non-null int64
date 43 non-null datetime64[ns]
attacks 43 non-null int64
deaths 43 non-null int64
day_name 43 non-null object
handle 43 non-null bool
dtypes: bool(1), datetime64[ns](1),int64(3),object(1)
memory usage: 1.8+ KB
order attacks deaths
handle
False 231 528 500
True 715 43 116
Lorsque j'ai retiré la poignée de la pompe, plus aucune eau infectée n'a été collectée. Plus tard, on a découvert que l'eau de source sous la pompe était contaminée par les eaux usées. Cette pratique a ensuite été évaluée comme un exemple précoce d'application de l'épidémiologie, de la médecine de la santé publique et de la science (théorie pathogène) à une crise réelle. En 1992, une réplique de la pompe a été érigée, avec une description et une plaque commémorative, près de l'emplacement d'origine sans poignées, près du mur derrière l'actuel John Snow Pub. Cet endroit est subtilement marqué par une pierre de jante en granit rose devant une petite plaque murale.
Vous pouvez apprendre beaucoup des données de John Snow. Vous pouvez regarder des nombres absolus, mais cette observation peut conduire à de fausses conclusions, alors utilisons Bokeh pour regarder d'autres données.
Grâce à John Snow, j'ai pu voir les données par ordre chronologique.
python:7.py
import bokeh
from bokeh.plotting import output_notebook, figure, show
output_notebook(bokeh.resources.INLINE)
# Set up figure
p = figure(plot_width=900, plot_height=450, x_axis_type='datetime', tools='lasso_select, box_zoom, save, reset, wheel_zoom',
toolbar_location='above', x_axis_label='Date', y_axis_label='Number of Deaths/Attacks',
title='Number of Cholera Deaths/Attacks before and after 8th of September 1854 (removing the pump handle)')
# Plot on figure
p.line(dates['date'], dates['deaths'], color='red', alpha=1, line_width=3, legend='Cholera Deaths')
p.circle(dates['date'], dates['deaths'], color='black', nonselection_fill_alpha=0.2, nonselection_fill_color='grey')
p.line(dates['date'], dates['attacks'], color='black', alpha=1, line_width=2, legend='Cholera Attacks')
show(p)
Le résultat est le suivant.
La visualisation interactive précédente montre clairement que le pic d'épidémies de choléra s'est produit avant le retrait de la poignée et avait déjà diminué (orbite descendante) avant le 8 septembre 1854.
Ce n'est tout simplement pas vrai, car comparer uniquement des nombres absolus peut conduire à la fausse conclusion que le retrait de la poignée de la pompe Broad Street a arrêté l'épidémie de choléra ( Cela a aidé, mais je n'ai pas pu l'arrêter).
Mais les gens aiment les histoires sur les héros et autres mythes (certainement plus que la science ou la science des données). Selon la mythologie de John Snow, il était un super-héros qui a ignoré leur égalité en deux jours en émettant l'hypothèse que le choléra était une maladie d'origine hydrique. Bien que personne ne l'ait écouté, il a courageusement continué à le cartographier et, grâce à ses découvertes, a persuadé les autorités locales de retirer la poignée de la pompe à eau infectée et a provoqué l'épidémie. arrêté. John Snow a sauvé la vie de nombreux Londoniens.
Si vous regardez de plus près ce qui se cache derrière cette histoire, vous constaterez que vous combattez la maladie avec des outils limités et que vous essayez d'obtenir la preuve que vous avez raison et que vous «savez quelque chose» sur le choléra. Vous pouvez également voir John Snow. Il ne faisait que ce qu'il pouvait en un temps limité et faisait toujours bouillir de l'eau avant de boire.
J'ai créé une carte du choléra sur python par John Snow, médecin britannique et leader dans le développement de l'anesthésie et de l'hygiène médicale. Le choléra est maintenant connu pour être d'origine hydrique, mais il était encore inconnu à l'époque. Même dans de telles circonstances, John Snow, qui a construit et démontré une hypothèse, est incroyable.
Recommended Posts