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 zeichnenLa 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.
