Análisis de los precios al consumidor en Chile (2026): Un enfoque con Python

Análisis de los precios al consumidor en Chile (2026): Un enfoque con Python

Introducción: Para encontrar un ejemplo de la vida real, he analizado un archivo CSV del gobierno chileno sobre los precios oficiales al consumidor. Los datos provienen del portal datos.gob.cl.

Para nuestro script, utilizamos el lenguaje Python y la biblioteca Pandas. En mi caso, también utilizo Matplotlib para la visualización.

import pandas as pd
from pathlib import Path
import re
import matplotlib.pyplot as plt

HOME = Path.home()
FILEname = 'Chile_precio_consumidor_publico_2026.csv'

directory = HOME / 'Linux_PC' / 'Programmieren' / 'Python' / 'Python_eigene_Scripte' / 'Chile'
PATH = directory / FILEname

def childe_precio_consumidor():
    try:
        df = pd.read_csv(PATH, encoding='latin-1')

        print("Busca el producto que deseas consultar:")
        producto = input("Ingrese el nombre del producto: ")
        palabras_clave = re.findall(r'\w+', producto)
        
        if not palabras_clave:
            print("No se ingresaron palabras clave válidas.")
            return None, None # Nichts gefunden

        resultado = df[df['Producto'].str.contains('|'.join(palabras_clave), case=False, na=False)]
        
        if not resultado.empty:
            print(resultado)
            return resultado, producto # DATEN ZURÜCKGEBEN
        else:
            print("Producto no encontrado.")
            return None, None

    except Exception as e:
        print(f"An error occurred: {e}")
        return None, None

def plot_precios_chile(resultado, producto_nombre):
    if resultado is None or resultado.empty:
        print("Keine Daten für Grafik vorhanden.")
        return

    # Wir nehmen die Top 10 Treffer
    top_resultado = resultado.head(10)

    nombres = top_resultado['Producto']
    minimos = top_resultado['Precio minimo']
    maximos = top_resultado['Precio maximo']
    
    plt.figure(figsize=(12, 7))
    
    plt.hlines(y=nombres, xmin=minimos, xmax=maximos, color='#0039a6', alpha=0.5, linewidth=5)
    plt.scatter(minimos, nombres, color='#d52b1e', label='Precio Mínimo', s=100)
    plt.scatter(maximos, nombres, color='#0039a6', label='Precio Máximo', s=100)

    plt.title(f'Rango de Precios en Chile: {producto_nombre} (2026)', fontsize=16, fontweight='bold')
    plt.xlabel('Precio en Pesos Chilenos (CLP)', fontsize=12)
    plt.grid(True, linestyle='--', alpha=0.6)
    plt.legend()
    plt.tight_layout()

    image_path = directory / f"precios_{producto_nombre.replace(' ', '_')}.png"
    plt.savefig(image_path)
    print(f"\nGrafik wurde gespeichert unter: {image_path}")
    plt.show()

# --- HAUPTPROGRAMM ---
# Hier werden die Funktionen nacheinander ausgeführt:
res, prod = childe_precio_consumidor() # 1. Suche ausführen und Ergebnisse speichern
if res is not None:
    plot_precios_chile(res, prod) # 2. Grafik mit diesen Ergebnissen zeichnen

La visualización: En este caso, no utilizo un gráfico de barras típico. He creado un diagrama de rangos (también conocido como Dumbbell Plot).

Al ejecutar el script, el sistema pregunta por un producto. En este ejemplo, he ingresado “pollo”. Por eso, el diagrama muestra la dispersión de precios de diferentes productos derivados del pollo, basándose en los datos oficiales.

Die Kommentare sind geschlossen.