Actualizaciones en vivo de Corona Virus para India: uso de Python

Como sabemos, el mundo entero se está viendo afectado por la pandemia de COVID-19 y casi todos trabajan desde casa. Todos deberíamos utilizar esta duración en el mejor de los casos, para mejorar nuestras habilidades técnicas o escribir buenos scripts Pythonic. 
Veamos un simple script de Python para demostrar los casos de coronavirus por estado en India. Este script de Python obtiene los datos en vivo del sitio web oficial del Ministerio de Asuntos de Salud. Luego, los datos se representan en el gráfico de barras horizontales.
Para ejecutar este script, siga la instalación a continuación: 
 

$ pip install bs4
$ pip install tabulate
$ pip install matplotlib
$ pip install numpy 
$ pip install requests

  
Intentemos ejecutar el script paso a paso. 
Paso 1: 
 

Python3

# importing libraries
 
import requests
from bs4 import BeautifulSoup
from tabulate import tabulate
import os
import numpy as np
import matplotlib.pyplot as plt

 
Paso 2: 
 

Python3

extract_contents = lambda row: [x.text.replace('\n', '') for x in row]
URL = 'https://www.mohfw.gov.in/'
   
SHORT_HEADERS = ['SNo', 'State','Indian-Confirmed(Including Foreign Confirmed)','Cured','Death']
   
response = requests.get(URL).content
soup = BeautifulSoup(response, 'html.parser')
header = extract_contents(soup.tr.find_all('th'))
 
stats = []
all_rows = soup.find_all('tr')
 
for row in all_rows:
    stat = extract_contents(row.find_all('td'))
    
    if stat:
        if len(stat) == 4:
            # last row
            stat = ['', *stat]
            stats.append(stat)
        elif len(stat) == 5:
            stats.append(stat)
 
stats[-1][0] = len(stats)
stats[-1][1] = "Total Cases" 

 
Paso 3: 
 

Python3

objects = []
for row in stats :
    objects.append(row[1]) 
   
y_pos = np.arange(len(objects))
 
performance = []
for row in stats[:len(stats)-1] :
    performance.append(int(row[2]))
 
performance.append(int(stats[-1][2][:len(stats[-1][2])-1]))
 
table = tabulate(stats, headers=SHORT_HEADERS)
print(table)

Producción: 
 

Paso 4: 
 

Python3

plt.barh(y_pos, performance, align='center', alpha=0.5,
                 color=(234/256.0, 128/256.0, 252/256.0),
                 edgecolor=(106/256.0, 27/256.0, 154/256.0))
   
plt.yticks(y_pos, objects)
plt.xlim(1,performance[-1]+1000)
plt.xlabel('Number of Cases')
plt.title('Corona Virus Cases')
plt.show()

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por _decryptor_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *