# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# Dans ce projet, nous allons analyser l'évolution du Covid 19 dans le monde
# Source des données: https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distribution-covid-19-cases-worldwide
#

# Voici quelques questions qui peuvent guider notre analyse
# * Quels sont les pays avec les plus grand nombres de cas ?
# * Quels sont les pays avec un taux de mortalité élevé ?
# * Le confinement a-t-il eu un effet sur le nombre de cas ?
# * Comparer la situation par continent 

# # Importer les données

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# %matplotlib inline

# !pip install xlrd==1.2.0

df=pd.read_excel('datasets/COVID-19-geographic-disbtribution-worldwide-2020-12-14.xlsx')
df.head()

df.info()

df.describe()

df.columns

# Calculating the percentage of null values:
# CODE:
df.isna().sum().sum()/len(df)

df.dropna(inplace=True)

# # Pays avec les plus grand nombres de cas

df.columns

df_by_country=df.groupby('countriesAndTerritories')['cases', 'deaths'].sum().sort_values('cases',ascending=False)
df_by_country

# # Pays avec Taux de mortalité élevé



df_by_country['mortality_rate']=df_by_country['deaths']/df_by_country['cases']

#Sorting the values for the mortality rate in the descending order
plt.figure(figsize=(15,10))
ax = df_by_country['mortality_rate'].sort_values(ascending=False).head(20).plot.bar()
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha="right")
ax.set_xlabel("Country")
ax.set_ylabel("Mortality rate")
ax.set_title("Countries with highest mortality rates")

# # Pays avec le plus de morts

#sorting the number of deaths in the descending order
plt.figure(figsize=(10,6))
ax=df_by_country['deaths'].sort_values(ascending=False).head(5).plot(kind='bar')
ax.set_xticklabels(ax.get_xticklabels(), rotation=45)
ax.set_title("Countries suffering the most fatalities from COVID-19")
ax.set_xlabel("Countries")
ax.set_ylabel("Number of deaths")

# # Effet du confinement sur le nombre de cas

df_by_month = df.groupby('month')['cases','deaths'].sum()

df_by_month.head()

# +
fig=plt.figure(figsize=(15,10))
ax1=fig.add_subplot(1,2,1)
ax2=fig.add_subplot(1,2,2)

df_by_month['cases'].plot(kind='line',ax=ax1)
ax1.set_title("Nombre total de cas de covid par mois")
ax1.set_xlabel("Mois")
ax1.set_ylabel("Nombre de cas")
df_by_month['deaths'].plot(kind='line',ax=ax2)
ax2.set_title("Nombre total de morts par mois")
ax2.set_xlabel("Mois")
ax2.set_ylabel("Nombre de morts")
# -

# Quand on regarde de façon globale on a pas l'impression d'une diminution. Essayons de voir le cas de certains pays en particulier, qui ont un confinement strict

# +
df_germany = df[df.countriesAndTerritories == 'Germany']
df_germany_monthwise = df_germany.groupby('month')['cases','deaths'].sum()
df_germany_grouped = df_germany_monthwise.reset_index()


df_uk = df[df.countriesAndTerritories == 'United_Kingdom']
df_uk_monthwise = df_uk.groupby('month')['cases','deaths'].sum()
df_uk_grouped = df_uk_monthwise.reset_index()


df_france = df[df.countriesAndTerritories == 'France']
df_france_monthwise = df_france.groupby('month')['cases','deaths'].sum()
df_france_grouped = df_france_monthwise.reset_index()


df_italy = df[df.countriesAndTerritories == 'Italy']
df_italy_monthwise = df_italy.groupby('month')['cases','deaths'].sum()
df_italy_grouped = df_italy_monthwise.reset_index()

# +
fig=plt.figure(figsize=(20,15))

ax1=fig.add_subplot(2,2,1)
df_uk_grouped.plot(kind='line',x='month',y='cases',ax=ax1)
ax1.set_title("Evolution du covid en UK")

ax2=fig.add_subplot(2,2,2)
df_france_grouped.plot(kind='line',x='month',y='cases',ax=ax2)
ax2.set_title("Evolution du covid en France")

ax3=fig.add_subplot(2,2,3)
df_italy_grouped.plot(kind='line',x='month',y='cases',ax=ax3)
ax3.set_title("Evolution du covid en Italy")

ax4=fig.add_subplot(2,2,4)
df_germany_grouped.plot(kind='line',x='month',y='cases',ax=ax4)
ax4.set_title("Evolution du covid en Allemagne")
plt.show()
# -

# # Situation par continent ?

df.columns

df['continentExp'].value_counts()

df.groupby('continentExp')['cases', 'deaths'].sum().sort_values('cases')

df.groupby('continentExp')['cases', 'deaths'].sum().sort_values('deaths')



StarcoderdataJupyterScriptsDedupFiltered