COVID-19 Vaccines Analysis with Python

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv("/kaggle/input/country-vaccine/country_vaccinations.csv")
data.head()
country iso_code date total_vaccinations people_vaccinated people_fully_vaccinated daily_vaccinations_raw daily_vaccinations total_vaccinations_per_hundred people_vaccinated_per_hundred people_fully_vaccinated_per_hundred daily_vaccinations_per_million vaccines source_name source_website
0 Afghanistan AFG 2021-02-22 0.0 0.0 NaN NaN NaN 0.0 0.0 NaN NaN Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... World Health Organization https://covid19.who.int/
1 Afghanistan AFG 2021-02-23 NaN NaN NaN NaN 1367.0 NaN NaN NaN 34.0 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... World Health Organization https://covid19.who.int/
2 Afghanistan AFG 2021-02-24 NaN NaN NaN NaN 1367.0 NaN NaN NaN 34.0 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... World Health Organization https://covid19.who.int/
3 Afghanistan AFG 2021-02-25 NaN NaN NaN NaN 1367.0 NaN NaN NaN 34.0 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... World Health Organization https://covid19.who.int/
4 Afghanistan AFG 2021-02-26 NaN NaN NaN NaN 1367.0 NaN NaN NaN 34.0 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... World Health Organization https://covid19.who.int/
data.describe()
total_vaccinations people_vaccinated people_fully_vaccinated daily_vaccinations_raw daily_vaccinations total_vaccinations_per_hundred people_vaccinated_per_hundred people_fully_vaccinated_per_hundred daily_vaccinations_per_million
count 4.360700e+04 4.129400e+04 3.880200e+04 3.536200e+04 8.621300e+04 43607.000000 41294.000000 38802.000000 86213.000000
mean 4.592964e+07 1.770508e+07 1.413830e+07 2.705996e+05 1.313055e+05 80.188543 40.927317 35.523243 3257.049157
std 2.246004e+08 7.078731e+07 5.713920e+07 1.212427e+06 7.682388e+05 67.913577 29.290759 28.376252 3934.312440
min 0.000000e+00 0.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00 0.000000 0.000000 0.000000 0.000000
25% 5.264100e+05 3.494642e+05 2.439622e+05 4.668000e+03 9.000000e+02 16.050000 11.370000 7.020000 636.000000
50% 3.590096e+06 2.187310e+06 1.722140e+06 2.530900e+04 7.343000e+03 67.520000 41.435000 31.750000 2050.000000
75% 1.701230e+07 9.152520e+06 7.559870e+06 1.234925e+05 4.409800e+04 132.735000 67.910000 62.080000 4682.000000
max 3.263129e+09 1.275541e+09 1.240777e+09 2.474100e+07 2.242429e+07 345.370000 124.760000 122.370000 117497.000000
pd.to_datetime(data.date)
data.country.value_counts()
country
Norway                             482
Latvia                             480
Denmark                            476
United States                      471
Russia                             470
                                  ... 
Bonaire Sint Eustatius and Saba    146
Tokelau                            114
Saint Helena                        92
Pitcairn                            85
Falkland Islands                    67
Name: count, Length: 223, dtype: int64
data = data[data.country.apply(lambda x: x not in ["England", "Scotland", "Wales", "Northern Ireland"])]
data.country.value_counts()
country
Norway                             482
Latvia                             480
Denmark                            476
United States                      471
Canada                             470
                                  ... 
Bonaire Sint Eustatius and Saba    146
Tokelau                            114
Saint Helena                        92
Pitcairn                            85
Falkland Islands                    67
Name: count, Length: 219, dtype: int64
data.vaccines.value_counts()
vaccines
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech                     7608
Oxford/AstraZeneca                                                                6022
Oxford/AstraZeneca, Pfizer/BioNTech                                               4629
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech                                      4491
Johnson&Johnson, Moderna, Novavax, Oxford/AstraZeneca, Pfizer/BioNTech            3564
                                                                                  ... 
Johnson&Johnson, Oxford/AstraZeneca, Sinovac                                       312
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac, Sputnik V                   311
Johnson&Johnson, Moderna                                                           251
Johnson&Johnson, Pfizer/BioNTech, Sinopharm/Beijing                                228
EpiVacCorona, Oxford/AstraZeneca, QazVac, Sinopharm/Beijing, Sputnik V, ZF2001     190
Name: count, Length: 84, dtype: int64
df = data[["vaccines", "country"]]
df.head()
vaccines country
0 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... Afghanistan
1 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... Afghanistan
2 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... Afghanistan
3 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... Afghanistan
4 Johnson&Johnson, Oxford/AstraZeneca, Pfizer/Bi... Afghanistan
dict_ = {}
for i in df.vaccines.unique():
  dict_[i] = [df["country"][j] for j in df[df["vaccines"]==i].index]

vaccines = {}
for key, value in dict_.items():
  vaccines[key] = set(value)
for i, j in vaccines.items():
  print(f"{i}:>>{j}")
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing:>>{'Trinidad and Tobago', 'Belize', 'Cameroon', 'Afghanistan', 'Namibia'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac, Sputnik V:>>{'Albania', 'Azerbaijan', 'Oman', 'Bosnia and Herzegovina'}
Oxford/AstraZeneca, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'Algeria', 'Zimbabwe'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech:>>{'Sweden', 'United Kingdom', 'Fiji', 'Sint Maarten (Dutch part)', 'Japan', 'Guernsey', 'Australia', 'Isle of Man', 'Andorra', 'Jersey', 'Finland'}
Oxford/AstraZeneca:>>{'Montserrat', 'Papua New Guinea', 'Vanuatu', 'Togo', 'Nigeria', 'Democratic Republic of Congo', 'Saint Vincent and the Grenadines', 'Nauru', 'Solomon Islands', 'Sao Tome and Principe', 'Pitcairn', 'Mali', 'Saint Helena', 'Tuvalu', 'Angola', 'Kiribati', 'Samoa', 'Tonga', 'Falkland Islands', 'Liberia'}
Oxford/AstraZeneca, Pfizer/BioNTech:>>{'New Zealand', 'Gibraltar', 'Costa Rica', 'Bermuda', 'Anguilla', 'Panama', 'Saint Lucia', 'Saudi Arabia', 'Kosovo', 'Cayman Islands', 'Saint Kitts and Nevis'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sputnik V:>>{'Antigua and Barbuda'}
CanSino, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Argentina'}
Moderna, Oxford/AstraZeneca, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'Armenia'}
Pfizer/BioNTech:>>{'Turks and Caicos Islands', 'Monaco', 'New Caledonia', 'Niue', 'Aruba', 'Cook Islands', 'Tokelau'}
Johnson&Johnson, Moderna, Novavax, Oxford/AstraZeneca, Pfizer/BioNTech:>>{'Germany', 'Slovenia', 'Austria', 'Netherlands', 'South Korea', 'Lithuania', 'Italy', 'Czechia'}
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech:>>{'Bahamas', 'Grenada', 'Eswatini'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik Light, Sputnik V:>>{'Bahrain'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'Bangladesh'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing:>>{'Maldives', 'Suriname', 'Barbados', 'Dominica', 'Peru'}
Sinopharm/Beijing, Sputnik V:>>{'Kyrgyzstan', 'Belarus'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech:>>{'Luxembourg', 'Canada', 'Belgium', 'Croatia', 'Bulgaria', 'Jamaica', 'Poland', 'Malta', 'Spain', 'Romania', 'France', 'Ireland', 'Estonia', 'Iceland', 'Portugal', 'Cyprus', 'Greece'}
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac:>>{'Brazil', 'Benin'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing:>>{'Bhutan', 'Cape Verde'}
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Bolivia', 'Morocco', 'Moldova', "Cote d'Ivoire"}
Moderna, Pfizer/BioNTech:>>{'Norway', 'Qatar', 'Faeroe Islands', 'Israel', 'Bonaire Sint Eustatius and Saba', 'Curacao'}
Covaxin, Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac:>>{'Botswana'}
Johnson&Johnson, Oxford/AstraZeneca:>>{'Malawi', 'British Virgin Islands', 'South Sudan'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing:>>{'Kuwait', 'Nepal', 'Kenya', 'Brunei'}
Johnson&Johnson, Oxford/AstraZeneca, Sinopharm/Beijing:>>{'Burkina Faso', 'Lesotho', 'Mozambique', 'Senegal', 'Gambia', 'Zambia', 'Madagascar'}
Sinopharm/Beijing:>>{'Burundi', 'Equatorial Guinea', 'Chad'}
Johnson&Johnson, Oxford/AstraZeneca, Sinopharm/Beijing, Sinovac:>>{'Cambodia', 'Somalia'}
Covaxin, Oxford/AstraZeneca:>>{'Central African Republic'}
CanSino, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac:>>{'Chile', 'Ecuador'}
CanSino, Sinopharm/Beijing, Sinopharm/Wuhan, Sinovac, ZF2001:>>{'China'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac:>>{'Uganda', 'Ukraine', 'Colombia'}
Covaxin, Oxford/AstraZeneca, Sinopharm/Beijing:>>{'Comoros', 'Mauritius'}
Moderna, Oxford/AstraZeneca, Sinopharm/Beijing, Sputnik V:>>{'Congo'}
Abdala, Soberana Plus, Soberana02:>>{'Cuba'}
Johnson&Johnson, Moderna, Pfizer/BioNTech:>>{'Liechtenstein', 'Denmark', 'Switzerland', 'United States'}
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'Djibouti', 'Guinea', 'Egypt'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'El Salvador', 'Dominican Republic', 'Georgia'}
Covaxin, Johnson&Johnson, Oxford/AstraZeneca, Sinopharm/Beijing, Sinovac:>>{'Ethiopia'}
Johnson&Johnson, Pfizer/BioNTech:>>{'South Africa', 'French Polynesia'}
Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Gabon'}
Oxford/AstraZeneca, Sputnik V:>>{'Ghana'}
Moderna:>>{'Greenland', 'Wallis and Futuna'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sputnik V:>>{'Guatemala'}
Oxford/AstraZeneca, Sinopharm/Beijing:>>{'Myanmar', 'Guinea-Bissau', 'Sierra Leone', 'Niger', 'Mauritania'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Guyana', 'Sri Lanka'}
Johnson&Johnson, Moderna:>>{'Haiti'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sputnik V:>>{'Honduras'}
Pfizer/BioNTech, Sinovac:>>{'Hong Kong'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Jordan', 'Hungary'}
Covaxin, Oxford/AstraZeneca, Sputnik V:>>{'India'}
Johnson&Johnson, Moderna, Novavax, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'Indonesia'}
COVIran Barekat, Covaxin, FAKHRAVAC, Oxford/AstraZeneca, Razi Cov Pars, Sinopharm/Beijing, Soberana02, SpikoGen, Sputnik V:>>{'Iran'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Mongolia', 'Montenegro', 'Serbia', 'Lebanon', 'Iraq'}
QazVac, Sinopharm/Beijing, Sputnik V:>>{'Kazakhstan'}
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik Light, Sputnik V:>>{'Laos'}
Johnson&Johnson, Moderna, Novavax, Pfizer/BioNTech:>>{'Latvia'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'North Macedonia', 'Libya'}
Pfizer/BioNTech, Sinopharm/Beijing:>>{'Macao'}
CanSino, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'Malaysia'}
CanSino, Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac, Sputnik V:>>{'Mexico'}
Abdala, Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Soberana02, Sputnik Light, Sputnik V:>>{'Nicaragua'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac:>>{'Timor', 'Northern Cyprus', 'Uruguay'}
CanSino, Covaxin, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'Pakistan'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik Light, Sputnik V:>>{'Palestine', 'Philippines'}
Covaxin, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'Paraguay'}
EpiVacCorona, Sputnik V:>>{'Russia'}
Johnson&Johnson, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac, Sputnik V:>>{'Rwanda', 'Tunisia'}
Pfizer/BioNTech, Sputnik V:>>{'San Marino'}
Oxford/AstraZeneca, Sinopharm/Beijing, Sputnik V:>>{'Seychelles'}
Moderna, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'Singapore'}
Johnson&Johnson, Moderna, Novavax, Oxford/AstraZeneca, Pfizer/BioNTech, Sputnik V:>>{'Slovakia'}
Johnson&Johnson, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'Sudan'}
Johnson&Johnson, Oxford/AstraZeneca, Sinopharm/Beijing, Sinovac, Sputnik Light, Sputnik V:>>{'Syria'}
Medigen, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech:>>{'Taiwan'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac, Sputnik V:>>{'Tajikistan'}
Johnson&Johnson, Pfizer/BioNTech, Sinopharm/Beijing:>>{'Tanzania'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinovac:>>{'Thailand'}
Pfizer/BioNTech, Sinovac, Turkovac:>>{'Turkey'}
EpiVacCorona, Oxford/AstraZeneca, QazVac, Sinopharm/Beijing, Sputnik V, ZF2001:>>{'Turkmenistan'}
Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sinopharm/Wuhan, Sputnik V:>>{'United Arab Emirates'}
Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinovac, Sputnik Light, Sputnik V, ZF2001:>>{'Uzbekistan'}
Abdala, Sinopharm/Beijing, Sinovac, Soberana02, Sputnik Light, Sputnik V:>>{'Venezuela'}
Abdala, Moderna, Oxford/AstraZeneca, Pfizer/BioNTech, Sinopharm/Beijing, Sputnik V:>>{'Vietnam'}
Johnson&Johnson, Oxford/AstraZeneca, Sinovac:>>{'Yemen'}
import plotly.express as px
import plotly.offline as py

vaccine_map = px.choropleth(data, locations = 'iso_code', color = 'vaccines')
vaccine_map.update_layout(height=300, margin={"r":0,"t":0,"l":0,"b":0})
vaccine_map.show()