dd.eam.deflactar#

dane_data.eam.deflactar(df, columnas, deflactor, on='anio', base=100.0, sufijo='_real')[fuente]#

Convierte valores corrientes a precios constantes.

Calcula valor_real = valor / deflactor × base para cada columna.

Parámetros:
  • df (DataFrame) – Microdatos o tabla con valores corrientes.

  • columnas (Iterable[str]) – Columnas a deflactar.

  • deflactor (DataFrame | Series) – Una Serie indexada por año, o un DataFrame con las columnas de on (por ejemplo ["anio", "division"], para un deflactor por sector) y una columna deflactor.

  • on (str | list[str]) – Columna o columnas con que se une el deflactor.

  • base (float) – Valor del índice en el año base (100 si el deflactor es un índice base 100).

  • sufijo (str) – Sufijo de las columnas nuevas.

Devuelve:

df con la columna deflactor y una columna <columna><sufijo> por cada columna. Si df ya tenía una columna deflactor (de una llamada anterior), se reemplaza.

Tipo del valor devuelto:

DataFrame

Muestra:

ValueError – Si el deflactor repite un año (o una combinación de on): duplicaría filas de df.

Avisos:

UserWarning – Si algunas filas no encontraron deflactor (quedan vacías).

Notas

dane-data no trae deflactores. Para la industria se suele usar el índice de precios del productor (IPP) del DANE, por año o por división CIIU.

Ejemplos

>>> import pandas as pd
>>> import dane_data as dd
>>> eam = pd.DataFrame({
...     "anio": [2023, 2023, 2024], "sector": ["Alimentos", "Químicos", "Alimentos"],
...     "nordest": [1, 2, 1], "nordemp": [10, 20, 10],
...     "prodbr2": [500.0, 800.0, 550.0], "consin2": [300.0, 500.0, 320.0], "valagri": [200.0, 300.0, 230.0],
...     "pertotal": [10, 20, 11], "pperytem": [9, 18, 10], "salpeyte": [50.0, 90.0, 55.0],
...     "prespyte": [20.0, 30.0, 22.0],
... })
>>> ipp = pd.Series({2023: 100.0, 2024: 110.0})
>>> dd.eam.deflactar(eam, ["valagri"], ipp)[["anio", "valagri", "valagri_real"]].round(1)
   anio  valagri  valagri_real
0  2023    200.0         200.0
1  2023    300.0         300.0
2  2024    230.0         209.1