Model/etl/customers/benyon/epc_data.py
2025-04-01 22:43:50 +01:00

71 lines
2.1 KiB
Python

"""
Rough script to get the EPC data for Benyon
"""
import pandas as pd
import os
from dotenv import load_dotenv
from backend.SearchEpc import SearchEpc
from asset_list.utils import get_data
load_dotenv(dotenv_path="backend/.env")
EPC_AUTH_TOKEN = os.getenv("EPC_AUTH_TOKEN")
asset_list = pd.read_excel(
"/Users/khalimconn-kowlessar/Documents/hestia/Customers/Benyon Estate/List of All Properties ecl Grd Rents in "
"Alphabetical Order.xlsx",
header=1
)
asset_list.columns = ["tennancy", "landlord_id", "landlord_address"]
# Get postcode as the last 2 parts of the address, split on space
asset_list["postcode"] = asset_list["landlord_address"].apply(lambda x: x.split(" ")[-2] + " " + x.split(" ")[-1])
asset_list["house_no"] = asset_list.apply(
lambda x: SearchEpc.get_house_number(address=x["landlord_address"], postcode=x["postcode"]), axis=1
)
epc_data, errors, no_epc = get_data(
df=asset_list,
manual_uprn_map={},
epc_auth_token=EPC_AUTH_TOKEN,
uprn_column=None,
fulladdress_column="landlord_address",
address1_column="house_no",
postcode_column="postcode",
property_type_column=None,
built_form_column=None,
epc_api_only=True,
row_id_name="landlord_id",
)
df = asset_list[asset_list["landlord_id"].isin(no_epc)]
epc_df = pd.DataFrame(epc_data)
epc_df["current-energy-rating"].value_counts()
epc_df["property-type"].value_counts()
epc_df["walls-description"].value_counts(normalize=True)
asset_list = asset_list.merge(
epc_df[
[
"landlord_id", "current-energy-rating", "property-type", "total-floor-area", "roof-description",
"walls-description", "co2-emissions-current"
]
],
how="left",
left_on="landlord_id",
right_on="landlord_id"
)
asset_list.to_csv(
"/Users/khalimconn-kowlessar/Documents/hestia/Customers/Benyon Estate/asset_list.csv", index=False
)
asset_list_big = asset_list.merge(
epc_df,
how="left",
left_on="landlord_id",
right_on="landlord_id"
)
asset_list_big.to_csv(
"/Users/khalimconn-kowlessar/Documents/hestia/Customers/Benyon Estate/asset_list_full_data.csv",
index=False
)