El objetivo de este libro de notas es analizar la tendencia del Precio Voluntario del Pequeño Consumidor (PVPC) regulado por el estado Español y comparar dicho precio con la tarifa ofrecida por Gas Natural Fenosa.
In [1]:
%matplotlib inline
import datetime
import matplotlib.pyplot as plt
import os
import pandas as pd
import pytz
import ree_pvpc
import seaborn as sb
from datetime import datetime
plt.rcParams['figure.figsize'] = (18, 10)
FILE_NAME = "GEN_20141129_20151129.csv"
Tomaremos los datos de PVPC para un año, desde el 29 de Noviembre del 2014 hasta el 29 de Noviembre del 2015.
In [2]:
if os.path.exists(FILE_NAME):
tz = pytz.timezone("Europe/Madrid")
pvpc_ts = pd.Series.from_csv(FILE_NAME, header=0)
pvpc_ts.index = pvpc_ts.index.map(lambda x: x.replace(tzinfo=tz))
else:
pvpc_ts = ree_pvpc.generate_series("20141129","20151129")
pvpc_ts.to_csv(FILE_NAME, header=True, date_format="%Y-%m-%d %H:%M:%S%z", index_label="datetime")
Y de Gas Natural Fenosa, mirando las facturas, sabemos que hasta el 31 de Julio de 2015 el precio kWh fue de $0.141019$ €/kWh y desde el día siguiente de $0.136557$ €/kWh.
In [3]:
gn_p1 = [0.141019] * len(pvpc_ts[:datetime(2015, 7, 31, 23)])
gn_p2 = [0.136557] * len(pvpc_ts[datetime(2015, 8, 1):])
gn_ts = pd.Series(gn_p1 + gn_p2, index=pvpc_ts.index)
In [4]:
print "len(ts) = ",pvpc_ts.shape
Calculamos la diferencia entre PVPC y la tarifa de Gas Natural, y agrupamos en datos diurnos (entre las 10 y las 22) y datos nocturnos (entre las 23 y las 9 del día siguiente).
In [5]:
diff = pvpc_ts - gn_ts
g = diff.groupby(lambda x: x.hour>9 and x.hour < 23)
diff_day = diff[g.groups[True]]
diff_night = diff[g.groups[False]]
In [6]:
diff_day.hist(bins=50)
Out[6]:
In [7]:
diff_night.hist(bins=50)
Out[7]:
In [8]:
pvpc_hours = pvpc_ts.index.map(lambda x: x.hour)
pvpc_df = pd.DataFrame({"datetime":pvpc_ts.index, "hour":pvpc_hours, "value":pvpc_ts.values})
sb.violinplot(x="hour",y="value",data=pvpc_df)
Out[8]: