Aller au contenu

Base de données Edibatec

Scraping de https://www.edibatec.org/consultation/base/fabricant.php

⚡ Attention ! Ce message est important.

Le scraping est fait !! ne pas relancer

Au cas où pour lancer le scraping :

python bdd/edibatec/scrap_edibatec.py

Intéroger la base de données Edibatec

import pandas as pd
import sqlalchemy

# 1.-Turn on database engine
dbEngine = sqlalchemy.create_engine(
    'sqlite:///bdd/edibatec_release.sqlite')  # ensure this is the correct path for the sqlite file.

# 2.- Read data with pandas
df_distinct = pd.read_sql("""SELECT DISTINCT "FABRICANT_GAMME" FROM Fabricants """, dbEngine)

print(df_distinct)

df_isolant = pd.read_sql("""SELECT * FROM Fabricants WHERE "FABRICANT_CLASSE" LIKE "PRODISO" """,
                         dbEngine)

Catégories des produits

Nom de la colonne dans edibatec_release.sqlite : FABRICANT_GAMME [X] = INTERESSANT POUR ORENI

Gamme Code
0 Protection solaire PROTSOL
1 Pompe à chaleurs et systèmes thermodynamiques (PAC) SYSTHER
2 Verres VITRE__
3 Ouvrants OUVRANT
4 Entrées d'air de VMC VMCENTR
5 Radiateurs à eau chaude RADRECH
6 Vitrages isolants VITRES_
7 Ponts thermiques PONTHER
8 Emetteurs EMETTEU
9 Production et stockage d'eau chaude sanitaire PREPECS
10 Bouches d'extraction d'air de VMC VMCEXTR
11 Produits d'isolation du bâtiment PRODISO
12 Collecteurs chauffage et hydrocâblés COLLECT
13 Plaques et panneaux PLAQUES
14 Extracteur EXTRACT
15 Chaudières bois CHAUDBO
16 Chaudières gaz,fioul,électriques CHAUDRS
17 Centrale de traitement d'air CENTRAL
18 Structure des murs STRUMUR
19 Tous tubes et canalisations TUBES__
20 Performances acoustiques des verres isolants ACOUVER
21 Coffrets COFFRET
22 Régulateurs de débit REG_DEB
23 Capteurs solaires thermiques CAPTSOL
24 Vannes d'équilibrage VANEQUI
25 Sorties de toit aérauliques SORTOIT
26 Générateurs d'air chaud GENEAIR
27 Capteurs solaires photovoltaïques CAPT_PV
28 Ballon de stockage solaire BALLSOL
29 Automatisme de protection solaire AUTOMAT
30 Module thermique d'appartement (MTA) MOD_MTA
31 Fixations/supports FIXATIO
32 Thermostats, Programmateurs et Thermostats programmables TH_PROG
33 Accessoires ACCESSO
34 Registres aérauliques REGSTRA
35 Onduleurs pour installations photovoltaïques ONDULEU
36 Pompe à chaleurs et systèmes thermodynamiques (PAC) POMPCHA
37 Poêles à bois POELEBO
38 Emetteurs radiants TUBERAD
39 Ventilateurs brasseurs d'air VENTILB
40 Accessoires de réseau aéraulique ACCRESO
41 Articles de chaufferie ARTCHAU
42 Têtes thermostatiques pour robinet de chauffage TETHERM
43 CESI - Chauffe-eau Solaires Individuels CHFSOL_
44 Adjuvants & colles ADJUVNT
45 Gaines pour tube GAINTUB
46 Plancher isolation ISOPLAN
47 Mesureurs électroniques et autres MMESURE

Isolation

Catégories

df = pd.read_sql("""SELECT * FROM Fabricants WHERE "FABRICANT_CLASSE" LIKE "PRODISO" """,
                 dbEngine)

# 4.- Iterate over each row
list_fiche_produit = []
for data in df["FICHE_PRODUIT"]:
    fiche_produit = json.loads(data)
    list_fiche_produit.append(fiche_produit)

# 5.- Convert to dataframe
df_fiche_produit = pd.DataFrame(list_fiche_produit)
df_fiche_produit = df_fiche_produit[
    ["type_d_isolation", "type_d_isolant", "reference_commerciale", "code_barre",
     "conductivite_thermique_lambda"]]

print(df_fiche_produit.head(40))

resultat = df_fiche_produit['type_d_isolant'].drop_duplicates().reset_index(drop=True)

# Afficher le résultat
print(resultat)
Numéro Description
1 Isolant simple
2 Panneau de toiture
3 Complexe avec plaque de plâtre
4 Complexe avec plaque ciment
5 Complexe avec plaque de plâtre hydrofuge
6 Composite avec laine de bois

Comptages des produits isolants

# Agrégation et comptage
aggregated = df_fiche_produit.groupby('type_d_isolant').count()

# Affichage du résultat
print(aggregated)
| type_d_isolation | reference_commerciale | code_barre | conductivite_thermique_lambda | |:-------------------------------------------------|------------------------:|-------------:|---------------------------------:| | Complexe avec plaque ciment | 9 | 9 | 9 | | Complexe avec plaque de plâtre | 160 | 160 | 160 | | Complexe avec plaque de plâtre hydrofuge | 129 | 129 | 129 | | Composite avec laine de bois | 130 | 130 | 110 | | Isolant simple | 2285 | 2619 | 2595 | | Panneau de toiture | 1626 | 1626 | 1626 |

Statistique des produits isolants simple

# Filtrer les lignes où le type_d_isolant est "Isolant simple"
isolant_simple_df = df_fiche_produit.loc[df_fiche_produit['type_d_isolant'] == 'Isolant simple']

isolant_simple_df[['conductivite_thermique_lambda_value', 'conductivite_thermique_lambda_unit']] = isolant_simple_df[
    'conductivite_thermique_lambda'].str.extract(r'(\d+\.\d+|\d+) (W/m\.K)')

# Afficher le DataFrame
print(isolant_simple_df)
type_d_isolation type_d_isolant reference_commerciale code_barre conductivite_thermique_lambda_value conductivite_thermique_lambda_unit
1 Thermique, Acoustique Isolant simple ACOUSTILAINE 035 (100x600x5400mm) NaN 0.0350 W/m.K
2 Thermique Isolant simple IKO enertherm ALU XL 180 mm NaN 0.0220 W/m.K
3 NaN Isolant simple Vrac à insuffler dans murs larges - ROCKIN L e... 3537311011236 0.0360 W/m.K
9 NaN Isolant simple UNIMAT SOL SUPRADAL MI BD240 1200*2500X2 3334160398569 0.0360 W/m.K
11 Thermique Isolant simple IKO enertherm ALU XL 40 mm NaN 0.0220 W/m.K
... ... ... ... ... ... ...
7697 NaN Isolant simple Isolant biosourcé R 2,5 Ep 140 mm NaN 0.0220 W/m.K
7698 Thermique, Acoustique Isolant simple PANOL THERMO 035 - 100 x 60 cm - Ep.140 mm NaN 0.0330 W/m.K
7699 Thermique Isolant simple Laine de verre IBR 32 thermo-acoustique - Ep. 200 mm NaN 0.0320 W/m.K
7701 Thermique, Acoustique, Sécurité incendie Isolant simple ISOVER MUR-ISO - Rouleau 1200x5000x90mm - R=2.50 NaN 0.0360 W/m.K
7702 Thermique, Acoustique, Sécurité incendie Isolant simple PANOL THERMO 035 - 120 x 60 cm - Ep.160 mm NaN 0.0330 W/m.K

stats = isolant_simple_df['conductivite_thermique_lambda_value'].describe()

# Afficher le DataFrame
print(stats)
| Statistique | Valeur | |-------------|------------| | count | 2595.000 | | mean | 0.046321 | | std | 0.044707 | | min | 0.000 | | 25% | 0.0305 | | 50% | 0.0340 | | 75% | 0.0380 | | max | 0.2300 |

Stats