Los datos originales sobre los viaticos de los Senadores estan disponible en el sitio web del Honorable Senado de la Nación en formato PDF. Estos PDF fueron convertidos a exel utilizando smallpdf.com
En la primera parte, se transforma los exel a CSV. En la segunda parte, se los limpia:
In [1]:
import re
import os
import pandas as pd
In [2]:
def remove_end_dot(ele):
pattern = re.compile("\.[0-9]{1,2}$")
if pattern.search(ele):
index = [m.start() for m in re.finditer('\.', ele)][-1]
return ele[:index]
else:
return ele
def remove_coma(ele):
pattern = re.compile(",[0-9]{1,2}$")
if pattern.search(ele):
index = [m.start() for m in re.finditer(',', ele)][-1]
return ele[:index]
else:
return ele
In [3]:
df = pd.read_excel('../originales/viajes_2012.xlsx')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(str)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USS', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USD', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('-', '0')
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_end_dot)
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_coma)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('.', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(float)
df['Viaticos_dolar'] = df['Viaticos_dolar'].fillna(0)
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(str)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('$', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('-', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_end_dot)
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_coma)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('.', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(float)
df['Viaticos_pesos'] = df['Viaticos_pesos'].fillna(0)
df['Viaticos_euro'] = df['Viaticos_euro'].astype(str)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('€', '')
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('-', '')
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_end_dot)
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_coma)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('.', '')
df['Viaticos_euro'] = df['Viaticos_euro'].astype(float)
df['Viaticos_euro'] = df['Viaticos_euro'].fillna(0)
df
Out[3]:
In [4]:
df.to_csv('../viajes_2012.csv', index=False)
In [5]:
df = pd.read_excel('../originales/viajes_2013.xlsx')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(str)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USS', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USD', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('-', '0')
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_end_dot)
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_coma)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('.', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(float)
df['Viaticos_dolar'] = df['Viaticos_dolar'].fillna(0)
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(str)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('$', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('-', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_end_dot)
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_coma)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('.', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(float)
df['Viaticos_pesos'] = df['Viaticos_pesos'].fillna(0)
df['Viaticos_euro'] = df['Viaticos_euro'].astype(str)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('€', '')
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('-', '')
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_end_dot)
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_coma)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('.', '')
df['Viaticos_euro'] = df['Viaticos_euro'].astype(float)
df['Viaticos_euro'] = df['Viaticos_euro'].fillna(0)
df
Out[5]:
In [6]:
df.to_csv('../viajes_2013.csv', index=False)
In [7]:
df = pd.read_excel('../originales/viajes_2014.xlsx')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(str)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USS', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USD', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('-', '0')
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_end_dot)
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_coma)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('.', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(float)
df['Viaticos_dolar'] = df['Viaticos_dolar'].fillna(0)
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(str)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('$', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('-', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_end_dot)
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_coma)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('.', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(float)
df['Viaticos_pesos'] = df['Viaticos_pesos'].fillna(0)
df['Viaticos_euro'] = df['Viaticos_euro'].astype(str)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('€', '')
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('-', '')
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_end_dot)
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_coma)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('.', '')
df['Viaticos_euro'] = df['Viaticos_euro'].astype(float)
df['Viaticos_euro'] = df['Viaticos_euro'].fillna(0)
df
Out[7]:
In [8]:
df.to_csv('../viajes_2014.csv', index=False)
In [9]:
df = pd.read_excel('../originales/viajes_2015.xlsx')
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(str)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('$', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('-', '0')
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_end_dot)
df['Viaticos_pesos'] = df['Viaticos_pesos'].apply(remove_coma)
df['Viaticos_pesos'] = df['Viaticos_pesos'].str.replace('.', '')
df['Viaticos_pesos'] = df['Viaticos_pesos'].astype(float)
df['Viaticos_pesos'] = df['Viaticos_pesos'].fillna(0)
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(str)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USS', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USD', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('-', '0')
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_end_dot)
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_coma)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('.', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(float)
df['Viaticos_dolar'] = df['Viaticos_dolar'].fillna(0)
df['Viaticos_euro'] = df['Viaticos_euro'].astype(str)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('€', '')
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('-', '0')
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_end_dot)
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_coma)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('.', '')
df['Viaticos_euro'] = df['Viaticos_euro'].astype(float)
df['Viaticos_euro'] = df['Viaticos_euro'].fillna(0)
df
Out[9]:
In [10]:
df.to_csv('../viajes_2015.csv', index=False)
In [11]:
df = pd.read_excel('../originales/viajes_2016.xlsx')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(str)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USS', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USD', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('-', '0')
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_end_dot)
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_coma)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('.', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(float)
df['Viaticos_dolar'] = df['Viaticos_dolar'].fillna(0)
df['Viaticos_euro'] = df['Viaticos_euro'].astype(str)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('€', '')
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('-', '0')
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_end_dot)
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_coma)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('.', '')
df['Viaticos_euro'] = df['Viaticos_euro'].astype(float)
df['Viaticos_euro'] = df['Viaticos_euro'].fillna(0)
df
Out[11]:
In [12]:
df.to_csv('../viajes_2016.csv', index=False)
In [13]:
df = pd.read_excel('../originales/viajes_2017.xlsx')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(str)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USS', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('USD', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('-', '0')
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_end_dot)
df['Viaticos_dolar'] = df['Viaticos_dolar'].apply(remove_coma)
df['Viaticos_dolar'] = df['Viaticos_dolar'].str.replace('.', '')
df['Viaticos_dolar'] = df['Viaticos_dolar'].astype(float)
df['Viaticos_dolar'] = df['Viaticos_dolar'].fillna(0)
df['Viaticos_euro'] = df['Viaticos_euro'].astype(str)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('€', '')
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('-', '0')
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_end_dot)
df['Viaticos_euro'] = df['Viaticos_euro'].apply(remove_coma)
df['Viaticos_euro'] = df['Viaticos_euro'].str.replace('.', '')
df['Viaticos_euro'] = df['Viaticos_euro'].astype(float)
df['Viaticos_euro'] = df['Viaticos_euro'].fillna(0)
df
Out[13]:
In [14]:
df.to_csv('../viajes_2017.csv', index=False)
In [15]:
csvs = ['../viajes_2016.csv', '../viajes_2017.csv']
for csv in csvs:
# Split
df = pd.read_csv(csv)
df_fechas = df['Fecha'].str.split('al', expand=True)
# Add to df
df['Fecha_salida'] = df_fechas[0]
df['Fecha_llegada'] = df_fechas[1]
# Remove old column
df.drop('Fecha', axis=1, inplace=True)
df.to_csv(csv, index=False)
df
Out[15]:
In [16]:
import datetime
In [17]:
def replace_month(ele):
ele = str(ele)
if ele not in ['NaN', 'nan']:
ele = ele.lower()
mes2num = {'ene': '01', 'feb': '02', 'mar': '03', 'abr': '04',
'may': '05', 'jun': '06', 'jul': '07', 'ago': '08',
'sep': '09', 'oct': '10', 'nov': '11', 'dic': '12'}
# mes a reemplazar
key = ele.split('-')[1]
return ele.replace(key, mes2num[key])
return ele
def replace_slash(ele):
ele = ''.join(ele.split())
return ele.replace('/', '-')
In [18]:
for csv in ['../viajes_2012.csv', '../viajes_2013.csv', '../viajes_2014.csv', '../viajes_2015.csv']:
df = pd.read_csv(csv)
year = csv.split('_')[1].split('.csv')[0]
df['Fecha_llegada'] = df['Fecha_llegada'].fillna('nan')
df['Fecha_llegada'] = df['Fecha_llegada'].apply(replace_month)
df['Fecha_llegada'] = df['Fecha_llegada'] + '-' + year
df['Fecha_salida'] = df['Fecha_salida'].fillna('nan')
df['Fecha_salida'] = df['Fecha_salida'].apply(replace_month)
df['Fecha_salida'] = df['Fecha_salida'] + '-' + year
df.to_csv(csv, index=False)
df.head()
Out[18]:
In [19]:
for csv in ['../viajes_2016.csv', '../viajes_2017.csv']:
df = pd.read_csv(csv)
year = csv.split('_')[1].split('.csv')[0]
df['Fecha_llegada'] = df['Fecha_llegada'].fillna('nan')
df['Fecha_llegada'] = df['Fecha_llegada'].apply(replace_slash)
df['Fecha_llegada'] = df['Fecha_llegada'] + '-' + year
df['Fecha_salida'] = df['Fecha_salida'].fillna('nan')
df['Fecha_salida'] = df['Fecha_salida'].apply(replace_slash)
df['Fecha_salida'] = df['Fecha_salida'] + '-' + year
df.to_csv(csv, index=False)
df.head()
Out[19]:
In [ ]: