Learn practical skills, build real-world projects, and advance your career
import jovian
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from datetime import datetime
import math

ebola

  • c is threshold
  • put accurate measure
df=pd.read_csv('ebola_2014_2016_clean.csv')
data=df.to_numpy()
############################
dates=data[:,1]
countries=data[:,0]
cumulative_infected=data[:,2]
############################
distinct_countries=list(set(countries))
no_distinct_countries=len(distinct_countries)
############################
def find_days_between_dates(date):
    date_format = "%d/%m/%Y"
    year , month ,day=dates[0].split('-')
    my_year , my_month , my_day=date.split('-')
    a = datetime.strptime(day+'/'+month+'/'+year, date_format)
    b = datetime.strptime(my_day+'/'+my_month+'/'+my_year, date_format)
    delta = b - a
    return delta.days
    
############################
def filter_by_country(C):
    arrival_times=[]
    for country_index in range(no_distinct_countries):
        country=distinct_countries[country_index]
        for i in range(len(dates)):
            if countries[i]==country and len(arrival_times)!=country_index+1:
                if cumulative_infected[i]>=C:
                    arrival_times.append(find_days_between_dates(dates[i]))
                    
        if len(arrival_times)!=country_index+1:
            arrival_times.append(float('inf'))
    df=pd.DataFrame({'countries':distinct_countries , 'arrival_time':arrival_times})
    return     df   

############################
##Example
filter_by_country(100)

H1N1

  • c is threshold
  • put accurate measure
df=pd.read_excel('H1N1.xlsx')
data=df.to_numpy()
############################
dates=np.flip(data[:,3])
countries=np.flip(data[:,0])
cumulative_infected=np.flip(data[:,1])
############################
distinct_countries=list(set(countries))
no_distinct_countries=len(distinct_countries)
############################
for i in range(0, len(cumulative_infected)):
    if np.isnan(cumulative_infected[i]):
        cumulative_infected[i]=0
    else:
        cumulative_infected[i] = int(cumulative_infected[i]) 
############################
def find_days_between_dates(date):
    year , month ,day = str(dates[0]).split(' ')[0].split('-')          
    my_year , my_month, my_day = str(date).split(' ')[0].split('-')  
    date_format = "%d/%m/%Y"
    a = datetime.strptime(day+'/'+month+'/'+year, date_format)
    b = datetime.strptime(my_day+'/'+my_month+'/'+my_year, date_format)
    delta = b - a
    return delta.days
    
############################
def filter_by_country(C):
    arrival_times=[]
    for country_index in range(no_distinct_countries):
        country=distinct_countries[country_index]
        for i in range(len(dates)):
            if countries[i]==country and len(arrival_times)!=country_index+1:
                if cumulative_infected[i]>=C:
                    arrival_times.append(find_days_between_dates(dates[i]))
                    
        if len(arrival_times)!=country_index+1:
            arrival_times.append(float('inf'))
    df=pd.DataFrame({'countries':distinct_countries , 'arrival_time':arrival_times})
    return     df   

############################
##Example
filter_by_country(1)