In [ ]:
"""
For every day in a pgtable, count the number of rows by periods of X minutes for each interest entity.
At the end, calculate the mean between every day for each period.
"""

In [ ]:
from senpy.pgsql.q.mean import meanday_of_periods_by_entity

In [ ]:
# Input parameters
conParam = {
    'HOST' : 'localhost', 'USER' : 'postgres', 'PASSWORD' : 'admin',
    'PORT' : '5432', 'DATABASE' : 'valcarris_v2'
}

pgtable = 'id_pares_od'
DAY_FIELD = 'dia'
HOUR_FIELD = 'hora'
MINUTES_FIELD = 'minuto'
SECONDS_FIELD = "segundo"
ENTITY_FIELD = 'paragem'

# Dias uteis
EXCLUDE_DAYS = [
    '2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07',
    '2018-01-08', '2018-01-09', '2018-01-10', '2018-01-11', '2018-01-12',
    '2018-01-13', '2018-01-14', '2018-01-20', '2018-01-21',
    '2018-01-22', '2018-01-23', '2018-01-24', '2018-01-25', '2018-01-26',
    '2018-01-27', '2018-01-28', '2018-01-29', '2018-01-30', '2018-01-31', '2018-02-01'
]

# Sabados
"""EXCLUDE_DAYS = [
    '2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07',
    '2018-01-08', '2018-01-09', '2018-01-10', '2018-01-11', '2018-01-12',
    '2018-01-14', '2018-01-15', '2018-01-16', '2018-01-17', '2018-01-18', '2018-01-19',
    '2018-01-21', '2018-01-22', '2018-01-23', '2018-01-24', '2018-01-25', '2018-01-26',
    '2018-01-28', '2018-01-29', '2018-01-30', '2018-01-31',
    '2018-02-01'
]"""

# Domingos
"""EXCLUDE_DAYS = [
    '2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07',
    '2018-01-08', '2018-01-09', '2018-01-10', '2018-01-11', '2018-01-12',
    '2018-01-13', '2018-01-15', '2018-01-16', '2018-01-17', '2018-01-18', '2018-01-19',
    '2018-01-20', '2018-01-22', '2018-01-23', '2018-01-24', '2018-01-25', '2018-01-26',
    '2018-01-27', '2018-01-29', '2018-01-30', '2018-01-31',
    '2018-02-01'
]"""

PERIOD_INTERVAL = None
#PERIODS = None
#PERIODS = [((7,30), (9,30)), ((10,0), (15,0)), ((16,30), (18,30)), ((20,0), (24,0))]
#PERIODS = [((9, 0), (13, 0))]
PERIODS = [((7, 30), (9, 30)), ((10, 0), (12, 0))]

OUTPUT_FILE = r'D:\TRENMO_JASP\CARRIS\validacoes\carreira\v26b7h30_9h30_15a19jan.xlsx'

In [ ]:
meanday_of_periods_by_entity(
    conParam, "valida_26b", DAY_FIELD, HOUR_FIELD,
    MINUTES_FIELD, 'fid', r"D:\TRENMO_JASP\xyz\teste_pandas.xlsx",
    PERIODS=PERIODS, PERIODS_INTERVAL=PERIOD_INTERVAL,
    EXCLUDE_DAYS=EXCLUDE_DAYS, workspace_day_tables=None
)

In [ ]:
from senpy.pgsql.q.mean import meanrowsday_of_periods_by_entity

In [ ]:
INCLUDE_DAYS = [
    #'2018-01-08', '2018-01-09', '2018-01-10', '2018-01-11', '2018-01-12',
    '2018-01-15', '2018-01-16', '2018-01-17', '2018-01-18', '2018-01-19',
    #'2018-01-22', '2018-01-23', '2018-01-24', '2018-01-25', '2018-01-26',
    #'2018-01-29', '2018-01-30', '2018-01-31'
]

meanrowsday_of_periods_by_entity(
    conParam, pgtable, DAY_FIELD, HOUR_FIELD, MINUTES_FIELD, SECONDS_FIELD,
    ["fid_percurso", "paragem"], [("07:30:00", "09:30:00"), ("10:00:00", "12:00:00")],
    r'D:\TRENMO_JASP\xyz\teste_sql.xlsx',
    filterData="({}) AND fid_percurso LIKE '%26B%'".format(" OR ".join(["dia='{}'".format(d) for d in INCLUDE_DAYS])),
    numberDays=5
)

In [ ]: