From 7fbb6051340eaf038133a7058f3ea7c43d1daf69 Mon Sep 17 00:00:00 2001 From: Koen van Greevenbroek Date: Fri, 2 Feb 2024 10:41:05 +0000 Subject: [PATCH 1/4] Address FutureWarnings in `make_summary_perfect` related to groupby --- scripts/make_summary_perfect.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/scripts/make_summary_perfect.py b/scripts/make_summary_perfect.py index d401b28e..d68ac628 100644 --- a/scripts/make_summary_perfect.py +++ b/scripts/make_summary_perfect.py @@ -246,8 +246,9 @@ def calculate_energy(n, label, energy): .groupby(level=0) .sum() .multiply(c.df.sign) - .groupby(c.df.carrier, axis=1) + .T.groupby(c.df.carrier) .sum() + .T ) else: c_energies = pd.DataFrame( @@ -394,16 +395,9 @@ def calculate_supply_energy(n, label, supply_energy): if len(items) == 0: continue - s = ( - (-1) - * c.pnl["p" + end] - .reindex(items, axis=1) - .multiply(n.snapshot_weightings.objective, axis=0) - .groupby(level=0) - .sum() - .groupby(c.df.loc[items, "carrier"], axis=1) - .sum() - ).T + s = (-1) * c.pnl["p" + end].reindex(items, axis=1).multiply( + n.snapshot_weightings.objective, axis=0 + ).groupby(level=0).sum().T.groupby(c.df.loc[items, "carrier"]).sum() s.index = s.index + end s = pd.concat([s], keys=[c.list_name]) s = pd.concat([s], keys=[i]) @@ -514,9 +508,7 @@ def calculate_weighted_prices(n, label, weighted_prices): if names.empty: continue - load += ( - n.links_t.p0[names].groupby(n.links.loc[names, "bus0"], axis=1).sum() - ) + load += n.links_t.p0[names].T.groupby(n.links.loc[names, "bus0"]).sum() # Add H2 Store when charging # if carrier == "H2": @@ -557,9 +549,9 @@ def calculate_market_values(n, label, market_values): dispatch = ( n.generators_t.p[gens] - .groupby(n.generators.loc[gens, "bus"], axis=1) + .T.groupby(n.generators.loc[gens, "bus"]) .sum() - .reindex(columns=buses, fill_value=0.0) + .T.reindex(columns=buses, fill_value=0.0) ) revenue = dispatch * n.buses_t.marginal_price[buses] @@ -583,9 +575,9 @@ def calculate_market_values(n, label, market_values): dispatch = ( n.links_t["p" + i][links] - .groupby(n.links.loc[links, "bus" + i], axis=1) + .T.groupby(n.links.loc[links, "bus" + i]) .sum() - .reindex(columns=buses, fill_value=0.0) + .T.reindex(columns=buses, fill_value=0.0) ) revenue = dispatch * n.buses_t.marginal_price[buses] @@ -652,7 +644,7 @@ def calculate_co2_emissions(n, label, df): emitted = n.generators_t.p[gens.index].mul(em_pu) emitted_grouped = ( - emitted.groupby(level=0).sum().groupby(n.generators.carrier, axis=1).sum().T + emitted.groupby(level=0).sum().T.groupby(n.generators.carrier).sum().T ) df = df.reindex(emitted_grouped.index.union(df.index)) From 73b80ebab38cf275d3410fb5918e37061df452e4 Mon Sep 17 00:00:00 2001 From: Koen van Greevenbroek Date: Tue, 6 Feb 2024 09:39:11 +0000 Subject: [PATCH 2/4] Address pandas deprecation warnings in `prepare_perfect_foresight` --- scripts/prepare_perfect_foresight.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/prepare_perfect_foresight.py b/scripts/prepare_perfect_foresight.py index 3d72cd8c..467682a9 100644 --- a/scripts/prepare_perfect_foresight.py +++ b/scripts/prepare_perfect_foresight.py @@ -56,7 +56,9 @@ def get_investment_weighting(time_weighting, r=0.01): end = time_weighting.cumsum() start = time_weighting.cumsum().shift().fillna(0) return pd.concat([start, end], axis=1).apply( - lambda x: sum(get_social_discount(t, r) for t in range(int(x[0]), int(x[1]))), + lambda x: sum( + get_social_discount(t, r) for t in range(int(x.iloc[0]), int(x.iloc[1])) + ), axis=1, ) @@ -188,7 +190,7 @@ def concat_networks(years): pnl = getattr(n, component.list_name + "_t") for k in iterkeys(component.pnl): pnl_year = component.pnl[k].copy().reindex(snapshots, level=1) - if pnl_year.empty and ~(component.name == "Load" and k == "p_set"): + if pnl_year.empty and (not (component.name == "Load" and k == "p_set")): continue if component.name == "Load": static_load = network.loads.loc[network.loads.p_set != 0] @@ -398,7 +400,7 @@ def add_H2_boilers(n): c = "Link" logger.info("Add H2 boilers.") # existing gas boilers - mask = n.links.carrier.str.contains("gas boiler") & ~n.links.p_nom_extendable + mask = n.links.carrier.str.contains("gas boiler") & (not n.links.p_nom_extendable) gas_i = n.links[mask].index df = n.links.loc[gas_i] # adjust bus 0 From 1f482f3c9259fcfab94280a85bf38fcea9609562 Mon Sep 17 00:00:00 2001 From: Koen van Greevenbroek Date: Tue, 6 Feb 2024 11:45:20 +0100 Subject: [PATCH 3/4] Revert mistaken deprecation "fix" --- scripts/prepare_perfect_foresight.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/prepare_perfect_foresight.py b/scripts/prepare_perfect_foresight.py index 467682a9..cf013577 100644 --- a/scripts/prepare_perfect_foresight.py +++ b/scripts/prepare_perfect_foresight.py @@ -400,7 +400,7 @@ def add_H2_boilers(n): c = "Link" logger.info("Add H2 boilers.") # existing gas boilers - mask = n.links.carrier.str.contains("gas boiler") & (not n.links.p_nom_extendable) + mask = n.links.carrier.str.contains("gas boiler") & ~n.links.p_nom_extendable gas_i = n.links[mask].index df = n.links.loc[gas_i] # adjust bus 0 From c3d3b5f415342d526a3283f9bf422604c9f89b0b Mon Sep 17 00:00:00 2001 From: Koen van Greevenbroek Date: Wed, 7 Feb 2024 10:55:44 +0100 Subject: [PATCH 4/4] Fixes to `calculated_weighted_prices` --- scripts/make_summary_perfect.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/make_summary_perfect.py b/scripts/make_summary_perfect.py index d68ac628..064db454 100644 --- a/scripts/make_summary_perfect.py +++ b/scripts/make_summary_perfect.py @@ -492,7 +492,7 @@ def calculate_weighted_prices(n, label, weighted_prices): else: suffix = " " + carrier - buses = n.buses.index[n.buses.index.str[2:] == suffix] + buses = n.buses.index[n.buses.index.str[5:] == suffix] if buses.empty: continue @@ -503,12 +503,14 @@ def calculate_weighted_prices(n, label, weighted_prices): else n.loads_t.p_set.reindex(buses, axis=1) ) for tech in value: - names = n.links.index[n.links.index.to_series().str[-len(tech) :] == tech] + names = n.links.index[ + n.links.index.to_series().str[-len(tech) - 5 : -5] == tech + ] if names.empty: continue - load += n.links_t.p0[names].T.groupby(n.links.loc[names, "bus0"]).sum() + load += n.links_t.p0[names].T.groupby(n.links.loc[names, "bus0"]).sum().T # Add H2 Store when charging # if carrier == "H2": @@ -644,7 +646,7 @@ def calculate_co2_emissions(n, label, df): emitted = n.generators_t.p[gens.index].mul(em_pu) emitted_grouped = ( - emitted.groupby(level=0).sum().T.groupby(n.generators.carrier).sum().T + emitted.groupby(level=0).sum().T.groupby(n.generators.carrier).sum() ) df = df.reindex(emitted_grouped.index.union(df.index))