Consommation d’énergie des ménages

# hide
# Activate multi-output in notebook
from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

import pandas as pd
import plotly.express as px
# Import des données
PERIOD = 2017

# df_ind = pd.read_sas(
#    f"/mnt/data-in/budget_familles/Bdf_{PERIOD}/GEN_A1610170_DDIFFSAS/INDIVIDU.sas7bdat"
# )
# df_auto = pd.read_sas(
#     f"/mnt/data-in/budget_familles/Bdf_{PERIOD}/GEN_A1610170_DDIFFSAS/AUTOMOBILE.sas7bdat"
# )
df_men = pd.read_sas(
    f"/mnt/data-in/budget_familles/Bdf_{PERIOD}/GEN_A1610170_DDIFFSAS/MENAGE.sas7bdat"
)
df_depmen = pd.read_sas(
    f"/mnt/data-in/budget_familles/Bdf_{PERIOD}/GEN_A1610170_DDIFFSAS/DEPMEN.sas7bdat"
)

Quelles énergies avons-nous dans la base de budget des familles ?

Dictionnaire, page 6 : éléments d’information sur les consommations ne donnant pas lieu à une contrepartie financière : autoconsommation alimentaire, principaux avantages en nature fournis par l’employeur (disposition d’un logement, d’un véhicule, fourniture gratuite d’électricité, de gaz, etc.) et transferts non monétaires entre ménages

# df_ind.columns.to_list()
# df_auto.columns.to_list()
# df_men.columns.to_list()
# df_depmen.columns.to_list()


# 🔐 df_depmen

Energies du logement

Dictionnaire : * SOURCP Principale source d’énergie (dépenses collectives incluses ?)

Lexique valeurs SOURCP, dictionnaire page 373.

# poids
# 🔐 df_men['pondmen']

# sources d'énergie
filter_nan_sourcp = df_depmen["Sourcp"].notna()

SOURCP_VALUES = {
    "1": "Electricité",
    "2": "Gaz de ville",
    "3": "Butane, propane, gaz en citerne",
    "4": "Fuel, mazout, pétrole",
    "5": "Charbon, coke",
    "6": "Bois",
    "7": "Solaire",
    "8": "Géothermie",
    "9": "Aérothermie (pompe à chaleur)",
    "10": "Autre",
}

# 🔐 df_depmen[filter_nan_sourcp]["Sourcp"]
# traduction des valeurs : https://stackoverflow.com/questions/20250771/remap-values-in-pandas-column-with-a-dict-preserve-nans

Dépenses collectives

Dépenses du ménage seul

Dictionnaire, page 47, les montants : * MFAC_EG1 : Montant total des dépenses en électricité et gaz depuis un an * MFAC_ELEC1_D : Montant définitif total des dépenses en électricité depuis un an * MFAC_GAZ1_D : Montant définitif total des dépenses en gaz depuis un an * MCHOF_D (page 320) : Montant définitif des dépenses pour le chauffage collectif depuis un an * MCOMB0_D (page 320) : Montant définitif tot des achats de combustibles ou des frais liés au chauffage principal depuis 1 an * MCOMB1_D: Montant définitif total des achats de combustibles et autres frais pour les énergies secondaires depuis un an

Sachant qu’il existe des colonnes distinctes pour les montants total et définitif.

Dictionnaire, page 295, les catégories : * CHAUFP : Mode de chauffage principal de votre logement - 1 Chauffage central collectif (y.c chauffage urbain) - 2 Chauffage central individuel (y.c chaudière électrique) - 3 Chauffage mixte (collectif + appoint individuel) - 4 Chauffage électrique intégré - 5 Poêle à bois, à charbon, cheminée - 6 Autre mode de chauffage individuel (poêle à mazout, radiateur, etc.) - 7 Pas de chauffage

Les sources secondaires : * SOURCS01 * SOURCS02 * SOURCS03 * SOURCS04 * SOURCS05 * SOURCS06 * SOURCS07 * SOURCS08 * SOURCS09 * SOURCS10

columns_electicity = ["Mfac_EG1", "MFAC_ELEC1_D"]
columns_gaz = ["MFAC_GAZ1_D"]
columns_heat = [
    "Chaufp",
    "MCHOF_D",
    "MCOMB0_D",
    "MCOMB1_D",
]
columns_energy_secondary = [
    "SOURCS01",
    "SOURCS02",
    "SOURCS03",
    "SOURCS04",
    "SOURCS05",
    "SOURCS06",
    "SOURCS07",
    "SOURCS08",
    "SOURCS09",
    "SOURCS10",
]

columns_energy = (
    columns_electicity + columns_gaz + columns_heat + columns_energy_secondary
)
df_men_energy = df_depmen[columns_energy]

# 🔐 df_men_energy.describe()

Energies du transport

Total enquête

df_total = df_depmen.merge(
    df_men[["IDENT_MEN", "pondmen"]], on="IDENT_MEN", how="inner"
)
# Warning: multiple columns when merge is called more than one time
# [ i for i in df_total.columns.to_list() if "pond" in i]

columns_total = ["IDENT_MEN", "pondmen"] + columns_energy

# 🔐 df_total[columns_total]
df_total["Gaz"] = df_total["MFAC_GAZ1_D"] * df_total["pondmen"]
df_total["Elec"] = df_total["MFAC_ELEC1_D"] * df_total["pondmen"]

df_energy = pd.DataFrame(
    {
        "Source": ["Gaz", "Elec"],
        "Total €": [df_total["Gaz"].sum(), df_total["Elec"].sum()],
    }
)

fig = px.pie(
    df_energy, values="Total €", names="Source", title="Dépenses des ménages en énergie"
)
fig.show()
/tmp/ipykernel_9173/1590340746.py:1: PerformanceWarning: DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
  df_total["Gaz"] = df_total["MFAC_GAZ1_D"] * df_total["pondmen"]
/tmp/ipykernel_9173/1590340746.py:2: PerformanceWarning: DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
  df_total["Elec"] = df_total["MFAC_ELEC1_D"] * df_total["pondmen"]
Unable to display output for mime type(s): application/vnd.plotly.v1+json