El Marco de referencia en este proyecto es Wordmeter una pagina web que brinda informacion de diferentes estadisticas en tiempo real. En este caso particular extraemos la informacion de poblacion en cada país. La tabla se encuentra organizada de manera descendiente, es decir, que aparecwen primero los paises mayormente poblados y finalmente los menos poblados.

Para hacer el Analisis, vamos a hacer una prueba Extrayendo los datos de la tabla mediante WebScrapping en python usando la libreria beatifu soap. adicionalmente usaremos la libreria Mysql.connector para la manipulacion de bases de datos. Dicho esto creamos una base de datos de prueba en cleaver-cloud. El lector podrá hacer manipulaciónes a la base de datos si desea hacer ejercicios de practica conectandose a un servidor remoto, dicho 0esto establecemos una

def connect_to_database():
    return mysql.connector.connect(
        host="bcbey3gcqkkaqp4a7jm6-mysql.services.clever-cloud.com",
        database="bcbey3gcqkkaqp4a7jm6",
        user="uhv0hvx1jyevllcy",
        password="njR6W5pm7Af6y3I9fbT0"
    )
https://colab.research.google.com/github/ibarajas248/DataAnalisis_python/blob/main/Analisis_de_datos_mysql_pandas_matplotlib.ipynb#scrollTo=2LrfzW15X79V&line=98&uniqifier=1

La creación de la base de datos junto con la inserción en webscrapping se ve de la siguiente manera.



def run_query(query):
    db = connect_to_database()  # Conecta a la base de datos
    cursor = db.cursor()        # Crea un cursor para ejecutar comandos SQL
    cursor.execute(query)       # Ejecuta la consulta SQL proporcionada
    result = cursor.fetchall()  # Recupera todos los resultados de la consulta
    cursor.close()              # Cierra el cursor
    db.close()                  # Cierra la conexión a la base de datos
    return pd.DataFrame(result) # Convierte los resultados en un DataFrame de Pandas
    print(db)

query1 = """
SELECT Country, Population
FROM population
ORDER BY Population DESC
LIMIT 10;
"""


# Ejecutar una consulta SQL y obtener los resultados en un DataFrame
df1 = run_query(query1)
# Crear una nueva figura de matplotlib con tamaño personalizado
plt.figure(figsize=(10, 8))
# Crear un gráfico de barras horizontales
plt.barh(df1[0], df1[1], color='skyblue')
# Agregar etiquetas y título al gráfico
plt.xlabel('Population')  # Etiqueta del eje x (población)
plt.ylabel('Country')     # Etiqueta del eje y (país)
plt.title('Los 10 países más poblados')  # Título del gráfico

# Invertir el eje y para ordenar de mayor a menor población
plt.gca().invert_yaxis()

# Mostrar el gráfico
plt.show()

Source: Worldometer (www.Worldometers.info)
Elaboration of data by United Nations, Department of Economic and Social Affairs, Population Division. World Population Prospects: The 2022 Revision. (Medium-fertility variant).