Exploring Malaria Fatality Data

What is Malaria?¶

Source: WHO https://www.who.int/news-room/fact-sheets/detail/malaria¶

Malaria is an acute febrile illness caused by Plasmodium parasites, which are spread to people through the bites of infected female Anopheles mosquitoes. There are 5 parasite species that cause malaria in humans, and 2 of these species – P. falciparum and P. vivax – pose the greatest threat. P. falciparum is the deadliest malaria parasite and the most prevalent on the African continent. P. vivax is the dominant malaria parasite in most countries outside of sub-Saharan Africa.

The first symptoms – fever, headache and chills – usually appear 10–15 days after the infective mosquito bite and may be mild and difficult to recognize as malaria. Left untreated, P. falciparum malaria can progress to severe illness and death within a period of 24 hours.

In [1]:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.style as style
import seaborn as sns
from matplotlib.ticker import FuncFormatter
In [2]:
mal_rate = pd.read_csv("C:/Users/hunte/Desktop/R_Malaria/malaria-death-rates.csv")
mal_age = pd.read_csv("C:/Users/hunte/Desktop/R_Malaria/malaria-deaths-by-age.csv")
In [3]:
mal_rate.head()
Out[3]:
Entity Year DeathRate
0 Afghanistan 1990 0.83
1 Afghanistan 1991 1.57
2 Afghanistan 1992 1.75
3 Afghanistan 1993 0.71
4 Afghanistan 1994 1.35
In [4]:
mal_age.head()
Out[4]:
Entity Year Deaths-70-Plus Deaths-50-69 Deaths-15-49 Deaths-5-14 Deaths-Under-5
0 Afghanistan 1990 5 19 46 3 21
1 Afghanistan 1991 11 38 94 6 41
2 Afghanistan 1992 12 44 125 8 51
3 Afghanistan 1993 5 17 58 3 24
4 Afghanistan 1994 9 33 110 7 52

Map of the World Health Organization's African Region¶

who_african_region_map.jfif

View under-5 deaths in the African Region¶

In [5]:
africa_under_five = mal_age.loc[mal_age['Entity'] == 'African Region (WHO)',['Entity','Year','Deaths-Under-5']]

africa_under_five.head()
Out[5]:
Entity Year Deaths-Under-5
30 African Region (WHO) 1990 447410
31 African Region (WHO) 1991 459072
32 African Region (WHO) 1992 465937
33 African Region (WHO) 1993 476788
34 African Region (WHO) 1994 483003
In [6]:
africa_under_five.plot(x="Year", y="Deaths-Under-5",figsize=(10,5))

plt.title("Malaria Death Rates in Africa \nfor Children Under 5")
plt.style.use('fivethirtyeight')
plt.xlabel('')
plt.legend([], frameon=False)

ax = plt.gca()
ax.tick_params(axis='both', colors='black', labelsize=14, length=0)

ax.set_yticks([0,100000,200000,300000,400000,500000,600000,700000])

g = ax.get_yticks()
plt.yticks(g[1:])
ax.get_yaxis().set_major_formatter(
    FuncFormatter(lambda y,p: format(str(int(y/1000))+'K')))

ax.set_xticks([1990,2000,2010,2020])


plt.show()

Compare under-5 deaths to deaths for age 5 and over.¶

In [7]:
# First create a new column with sum of older deaths

mal_age['Deaths-5-Plus'] = (mal_age['Deaths-70-Plus'] + mal_age['Deaths-50-69'] + mal_age['Deaths-15-49'] + mal_age['Deaths-5-14'])
mal_age.head()
Out[7]:
Entity Year Deaths-70-Plus Deaths-50-69 Deaths-15-49 Deaths-5-14 Deaths-Under-5 Deaths-5-Plus
0 Afghanistan 1990 5 19 46 3 21 73
1 Afghanistan 1991 11 38 94 6 41 149
2 Afghanistan 1992 12 44 125 8 51 189
3 Afghanistan 1993 5 17 58 3 24 83
4 Afghanistan 1994 9 33 110 7 52 159
In [8]:
mal_age_compare = mal_age.loc[mal_age['Entity'] == 'African Region (WHO)',['Entity','Year','Deaths-Under-5','Deaths-5-Plus']]
mal_age_compare
Out[8]:
Entity Year Deaths-Under-5 Deaths-5-Plus
30 African Region (WHO) 1990 447410 141099
31 African Region (WHO) 1991 459072 148258
32 African Region (WHO) 1992 465937 154509
33 African Region (WHO) 1993 476788 162147
34 African Region (WHO) 1994 483003 167970
35 African Region (WHO) 1995 491834 177150
36 African Region (WHO) 1996 500507 187760
37 African Region (WHO) 1997 510686 197500
38 African Region (WHO) 1998 520047 206356
39 African Region (WHO) 1999 529046 214134
40 African Region (WHO) 2000 543150 220696
41 African Region (WHO) 2001 563070 230434
42 African Region (WHO) 2002 569214 235292
43 African Region (WHO) 2003 585432 250026
44 African Region (WHO) 2004 588510 252878
45 African Region (WHO) 2005 575111 256065
46 African Region (WHO) 2006 573935 259683
47 African Region (WHO) 2007 568309 266928
48 African Region (WHO) 2008 563214 269067
49 African Region (WHO) 2009 556361 265380
50 African Region (WHO) 2010 540479 263551
51 African Region (WHO) 2011 511338 252905
52 African Region (WHO) 2012 485376 241944
53 African Region (WHO) 2013 462857 231582
54 African Region (WHO) 2014 431001 224613
55 African Region (WHO) 2015 409999 221382
56 African Region (WHO) 2016 380397 224169
57 African Region (WHO) 2017 351702 226624
58 African Region (WHO) 2018 341506 237047
59 African Region (WHO) 2019 342099 248154

Every two minutes a young child dies from Malaria.¶

In [9]:
mal_age_compare.plot(x='Year',y=['Deaths-Under-5','Deaths-5-Plus'],figsize=(10,5))

plt.title("Malaria Kills More Children \nUnder the Age of 5 Than All Other Ages Combined")
plt.legend(['Children Younger Than 5','Age 5 and Up'])
plt.xlabel('')

ax = plt.gca()
ax.tick_params(axis='both', colors='black', labelsize=14, length=0)

ax.set_yticks([0,100000,200000,300000,400000,500000,600000,700000])

g = ax.get_yticks()
plt.yticks(g[1:])
ax.get_yaxis().set_major_formatter(
    FuncFormatter(lambda y,p: format(str(int(y/1000))+'K')))

ax.set_xticks([1990,2000,2010,2020])
ax.set_ylim(bottom=0)


plt.show()

Get the 5 countries with the highest death rates for various years and compare results¶

In [10]:
mal_1990 = mal_rate.loc[mal_rate['Year'] == 1990].sort_values(by="DeathRate", ascending=False)
mal_1990 = list(mal_1990['Entity'].head(5))
mal_1990
Out[10]:
['Sierra Leone', 'Mozambique', 'Burkina Faso', "Cote d'Ivoire", 'Uganda']
In [11]:
mal_2000 = mal_rate.loc[mal_rate['Year'] == 2000].sort_values(by="DeathRate", ascending=False)
mal_2000 = list(mal_2000['Entity'].head(5))
mal_2000
Out[11]:
['Sierra Leone', 'Senegal', 'Burkina Faso', 'Liberia', "Cote d'Ivoire"]
In [12]:
mal_2010 = mal_rate.loc[mal_rate['Year'] == 2010].sort_values(by="DeathRate", ascending=False)
mal_2010 = list(mal_2010['Entity'].head(5))
mal_2010
Out[12]:
['Sierra Leone', 'Burkina Faso', "Cote d'Ivoire", 'Niger', 'Nigeria']
In [13]:
mal_2019 = mal_rate.loc[mal_rate['Year'] == 2019].sort_values(by="DeathRate", ascending=False)
mal_2019 = list(mal_2019['Entity'].head(5))
mal_2019
Out[13]:
['Sierra Leone', "Cote d'Ivoire", 'Liberia', 'Burkina Faso', 'Benin']
In [14]:
set(mal_1990) & set(mal_2000) & set(mal_2010) & set(mal_2019)
Out[14]:
{'Burkina Faso', "Cote d'Ivoire", 'Sierra Leone'}
In [15]:
malaria_10_19 = mal_rate.loc[(mal_rate['Year'] == 2010) | (mal_rate['Year'] == 2019)]
malaria_10_19.head()
Out[15]:
Entity Year DeathRate
20 Afghanistan 2010 1.56
29 Afghanistan 2019 1.66
50 African Region (WHO) 2010 87.41
59 African Region (WHO) 2019 58.22
80 Albania 2010 0.00
In [16]:
malaria_10_19.isna().any()
Out[16]:
Entity       False
Year         False
DeathRate    False
dtype: bool
In [17]:
malariaX = (malaria_10_19[['Entity']].join(malaria_10_19.groupby('Entity')['DeathRate'].pct_change().mul(100).rename('Percent Death Increase'))
                  .dropna())
print (malariaX)
                              Entity  Percent Death Increase
29                       Afghanistan                6.410256
59              African Region (WHO)              -33.394348
209                           Angola               -4.376528
389                       Azerbaijan             -100.000000
479                       Bangladesh              -98.076923
...                              ...                     ...
6719  World Bank Lower Middle Income              -34.401832
6749  World Bank Upper Middle Income                8.333333
6779                           Yemen               -6.641124
6809                          Zambia              -16.273187
6839                        Zimbabwe              -61.530945

[98 rows x 2 columns]
In [18]:
m_list = malariaX.sort_values(by='Percent Death Increase', ascending=True).round(2).head(25)
m_list
Out[18]:
Entity Percent Death Increase
5939 Thailand -100.00
389 Azerbaijan -100.00
689 Bhutan -100.00
719 Bolivia -100.00
5519 South Korea -100.00
4619 Paraguay -100.00
1319 Costa Rica -100.00
4019 Nepal -100.00
5969 Timor -99.97
479 Bangladesh -98.08
3929 Myanmar -97.64
6479 Vanuatu -97.63
1649 East Asia & Pacific (WB) -91.09
5729 Suriname -91.03
2699 Indonesia -90.67
4679 Philippines -89.19
1619 Dominican Republic -89.13
3119 Laos -88.74
6539 Vietnam -87.23
959 Cambodia -84.62
5399 Solomon Islands -80.48
2549 Haiti -79.73
2519 Guyana -76.41
1199 Colombia -73.33
1229 Comoros -70.78

We can see that between 2010 and 2019, eight nations were able to eradicate Malaria: Thailand, Azerbaijan, Bhutan, Bolivia, South Korea, Paraguay, Costa Rica and Nepal¶

Conclusion:¶

Although posing nearly zero threat to people living in the United States, Malaria is one of the most deadly preventable disease on the planet. Each year, hundreds of thousands of people die from the disease, almost all of them young children.¶