#!/usr/bin/env python
# coding: utf-8

# # Ejercicio Transacciones. Parte 2 - Integración de datos.

# In[1]:


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime

import warnings
warnings.filterwarnings('ignore')

pd.options.display.float_format = '{:.2f}'.format #Desactivar notación científica en pandas:
np.set_printoptions(suppress=True) #Desactivar notación científica en numpy:
pd.set_option('display.max_columns', None) #comando para mostrar todas las columnas


# #### En el ejercicio previo hemos obtenido datos de diferentes fuentes y las hemos 'limpiado'.  Ahora integramos los datos en un tablón con el que realizar la analítica.

# In[15]:


sep = ";"
decimal = ","
index=False
encoding="UTF-8"


# In[7]:


datos1 = pd.read_csv('./data/transacciones2.csv', sep=sep, decimal=decimal, encoding=encoding)
datos2 = pd.read_csv('./data/clima2.csv', sep=sep, decimal=decimal, encoding=encoding)


# Unimos ambas tablas por la fecha

# In[8]:


datos1.head()


# In[9]:


datos2.head()


# In[13]:


datos1.info()


# In[14]:


datos2.info()


# In[10]:


resultado = pd.merge(
    datos1,
    datos2,
    how = 'left',
    on = 'Fecha',
    sort = True)
    
    


# In[11]:


resultado


# In[17]:


resultado.to_csv('./data/tran_cli.csv', sep=sep, decimal=decimal, index=index, encoding=encoding)


# Ahora le unimos festivos...

# In[19]:


datos3 = pd.read_csv('./data/festivos2.csv', sep=sep, decimal=decimal, encoding=encoding)


# In[21]:


resultado2 = pd.merge(
    resultado,
    datos3,
    how = 'left',
    on = 'Fecha',
    sort = True)


# In[22]:


resultado2


# ¿Véis algo raro en la descripción de los festivos?

# In[65]:


# Creo una nueva variable a partir de la descripción
filtro = ~(resultado2.Descripcion.isna()) # ~ invierte el resultado de una serie booleana.  Lo que es True lo convierte en False
resultado2['Festivo'] = 0
resultado2['Festivo'] = resultado2['Festivo'].astype('boolean')

# Ahora tenemos un filtro que nos permite seleccionar las filas que son festivas


# In[68]:


filtro


# In[69]:


resultado2['Festivo']


# In[81]:


resultado2['Festivo'][filtro] = 1


# In[82]:


resultado2


# In[83]:


resultado2.to_csv('./data/tran_cli_fest.csv', sep=sep, decimal=decimal, index=index, encoding=encoding)

