def columnise_energy_prices(df, island_split=True): """ Columnise the energy price dataframe """ # Separate the columns hay = df.eq_mask("Bus Id", "HAY2201") ben = df.eq_mask("Bus Id", "BEN2201") sfd = df.eq_mask("Bus Id", "SFD2201") hly = df.eq_mask("Bus Id", "HLY2201") ota = df.eq_mask("Bus Id", "OTA2201") # Rename the columns hay = hay.rename(columns={"Price Sum": "HAY2201 Price"}) ben = ben.rename(columns={"Price Sum": "BEN2201 Price"}) sfd = sfd.rename(columns={"Price Sum": "SFD2201 Price"}) hly = hly.rename(columns={"Price Sum": "HLY2201 Price"}) ota = ota.rename(columns={"Price Sum": "OTA2201 Price"}) # Remerge them mdf = nzem.merge_series(hay["HAY2201 Price"], ben["BEN2201 Price"]) mdf = nzem.merge_dfseries(mdf, sfd["SFD2201 Price"], left_index=True) mdf = nzem.merge_dfseries(mdf, hly["HLY2201 Price"], left_index=True) mdf = nzem.merge_dfseries(mdf, ota["OTA2201 Price"], left_index=True) if island_split: mdf["Island Price Split"] = mdf["HAY2201 Price"] - mdf["BEN2201 Price"] return mdf
def columnise_res_prices(df, island_price=True, islandid="Island Id", longname=False): """ Columnise the reserve price dataframe """ if longname: ni = "North Island" si = "South Island" else: ni = "NI" si = "SI" # Split them nif = df.eq_mask("Reserve Type", "F").eq_mask(islandid, ni) nis = df.eq_mask("Reserve Type", "S").eq_mask(islandid, ni) sif = df.eq_mask("Reserve Type", "F").eq_mask(islandid, si) sis = df.eq_mask("Reserve Type", "S").eq_mask(islandid, si) # Rename columns nif = nif.rename(columns={"Price Sum": "NI FIR Price"}) nis = nis.rename(columns={"Price Sum": "NI SIR Price"}) sif = sif.rename(columns={"Price Sum": "SI FIR Price"}) sis = sis.rename(columns={"Price Sum": "SI SIR Price"}) # Remerge them back together mdf = nzem.merge_series(nif["NI FIR Price"], nis["NI SIR Price"]) mdf = nzem.merge_dfseries(mdf, sif["SI FIR Price"], left_index=True) mdf = nzem.merge_dfseries(mdf, sis["SI SIR Price"], left_index=True) if island_price: mdf["NI Reserve Price"] = mdf["NI FIR Price"] + mdf["NI SIR Price"] mdf["SI Reserve Price"] = mdf["SI FIR Price"] + mdf["SI SIR Price"] return mdf