Récemment, beaucoup d'informations sur le virus corona ont circulé, mais je pense qu'il est difficile de juger si elles sont correctes si ce sont des informations que vous ne savez pas qui les a publiées.
** Pour obtenir des informations vraiment correctes, vous devez analyser les informations primaires vous-même autant que possible **. Dans cet article, nous comparerons les taux de gravité par groupe d'âge en utilisant Positive Patient Attribute Data publié par Hokkaido. ..
Utilisez les pandas de Python pour l'analyse. Tout d'abord, importez des pandas.
import pandas as pd
Ensuite, lisez les données.
df = pd.read_csv("https://www.harp.lg.jp/opendata/dataset/1369/resource/3132/010006_hokkaido_covid19_patients.csv", encoding="shift-jis")
Vous pouvez vérifier les données lues avec la méthode head.
df.head()
Maintenant, cette fois, nous comparerons la gravité de chaque groupe d'âge. Voyons d'abord comment les données actuelles sont catégorisées.
Commençons par l'âge.
df["patient_Âge"].value_counts()
Non divulgué 231
Années 20 223
Années 70 219
Années 60 202
50 ans 193
Années 40 176
Années 80 163
30 ans 157
Années 90 75
Jeune 33
Moins de 10 16
100 s 5
Moins de 10 ans 4
Personnes âgées 1
Name:patient_Âge, dtype: int64
Généralement, il est divisé par «-génération», mais il y a quelques fluctuations de notation (moins de 10 ans et moins de 10 ans) et âge inconnu (personnes âgées et non divulguées).
Puisqu'il est difficile d'analyser avec les catégories existantes, définissez les catégories ici et attribuez une nouvelle catégorie à chaque donnée.
Tout d'abord, définissez dans laquelle des nouvelles catégories s'inscrit la catégorie d'origine.
age_dict = {
"Moins de 10": "Ados et plus jeunes",
"Moins de 10 ans": "Ados et plus jeunes",
"10 ans": "10 ans以下",
"20 ans": "20 ans",
"30 s": "30 s",
"Quarante": "Quarante",
"Années 50": "Années 50",
"Années 60": "Années 60",
"Années 70": "Années 70",
"Années 80": "Années 80",
"Années 90": "Années 90以上",
"100 s": "90 ans et plus",
"non dévoilé": "inconnue",
"personnes agées": "inconnue"
}
Ajoutez ensuite une nouvelle colonne de catégorie au DataFrame.
df["Catégorie d'âge"] = [age_dict[key] for key in df["patient_Âge"]]
Sur la base de la catégorie d'âge définie ici, le nombre de personnes gravement malades sera compté.
De même, pour l'état du patient, vérifiez la catégorie d'origine et définissez la nouvelle catégorie.
df["patient_Statut"].value_counts()
Légère conversation possible 1004
− 108
Non divulgué 102
Asymptomatique 102
Conversation sans symptôme possible 97
Doux 88
Doux, conversation possible 54
Conversation modérée possible 35
Doux / conversation possible 30
Modéré 29
Sévère 13
Conversation gravement malade impossible 9
Repos sur le lit, conversation possible 7
Sans symptôme, conversation possible 5
Blessure grave: pas de conversation 3
Positif après la mort 2
Conversation modérée impossible 2
Aucun symptôme, conversation possible 2
Repos sur le lit, conversation possible 1
Négatif confirmé 1
Légère forte fièvre 1
En cours d'enquête 1
Degré de communication 1
Modéré / conversation possible 1
Name:patient_Statut, dtype: int64
stat_dict = {
"Sévère": "3.Sévère",
"Conversation sévère impossible": "3.Sévère",
"Blessure grave: aucune conversation": "3.Sévère",
"Conversation modérée possible": "2.Modérer",
"Modérer": "2.Modérer",
"Conversation modérée impossible": "2.Modérer",
"Modéré / conversation possible": "2.Modérer",
"Conversation légère possible": "1.Bénin",
"Bénin": "1.Bénin",
"Doux, conversation possible": "1.Bénin",
"Doux / conversation possible": "1.Bénin",
"Légère forte fièvre": "1.Bénin",
"Conversation sans symptômes possible": "0.Aucun symptôme",
"Asymptomatique": "0.Aucun symptôme",
"Sans symptôme, conversation possible": "0.Aucun symptôme",
"Aucun symptôme, conversation possible": "0.Aucun symptôme",
"−": "inconnue",
"non dévoilé": "inconnue",
"Repos sur le lit, conversation possible": "inconnue",
"Est devenu positif après la mort": "inconnue",
"Degré de communication": "inconnue",
"Négatif confirmé": "inconnue",
"enquêter": "inconnue",
"Repos sur le lit, conversation possible": "inconnue"
}
df["Catégorie d'état"] = [stat_dict[key] for key in df["patient_Statut"]]
Ceci termine l'affectation de la catégorie d'ère et de la catégorie d'état. Vous pouvez vérifier comment il a été réellement attribué avec la méthode head.
df.head()
Maintenant que les catégories sont prêtes, commençons à compter le nombre de patients par catégorie de statut. Nous avons adopté le tableau croisé par tableau croisé pour l'agrégation.
//Japaneseisation de matplotlib
pip install japanize-matplotlib
import japanize_matplotlib
import seaborn as sns
sns.set(font="IPAexGothic")
pd.crosstab(df["Catégorie d'âge"], df["Catégorie d'état"]).apply(
lambda x: x/sum(x), axis=1
).plot(
kind="bar",
logy=True,
rot=45,
figsize=(8,4),
color=["grey", "grey", "orange", "red", "grey"]
).legend(loc="upper left")
Le nombre de cas modérés et graves étant globalement faible (moins de 10%), l'axe des y est affiché de manière logarithmique.
On dit souvent que le coronavirus reste bénin chez les jeunes et a tendance à s'aggraver chez les personnes âgées, mais lorsqu'il est effectivement tabulé, cette tendance est certainement observée.
Il n'y a quasiment pas de cas modérés ou sévères jusqu'aux années 30, et la proportion de cas gravement malades augmente nettement proportionnellement à l'âge de la quarantaine aux années 80 **.
Cette fois, en utilisant les données d'attributs des personnes positives au coronavirus à Hokkaido, il a été confirmé que le taux de gravité augmente proportionnellement à l'âge.
De cette manière, vous pouvez obtenir des connaissances plus précises en ** analysant vous-même les données primaires publiées par les gouvernements nationaux et préfectoraux **.
Les données ouvertes ne sont pas toujours correctes, mais pourquoi ne pas essayer la méthode présentée ici comme l'un des moyens d'obtenir rapidement des informations aussi précises que possible.
c'est tout.
Recommended Posts