Estás navegando por el archivo de análisis de datos.

Limpieza y transformaciones de datos con Python II

- el julio 26, 2017 en Fuentes de datos, Guest posts, Tutoriales, Uncategorized

Desde Escuela de Datos, Sebastián Oliva, fellow 2017, enseña cómo usar la librería de Pandas, Numpy y Seaborn para Python para hacer manipulaciones, transformaciones y tablas dinámicas o pivotes. En este ejercicio vimos cómo hacer un stack, agrupaciones, e incluso cómo usar un hash para hacer anónimos algunos de nuestros datos sin perder granularidad.
Pues seguir el webinar del 26 de julio paso a paso en el cuaderno que compartimos contigo. También puedes consultar el cuaderno de trabajo de Sebastián aquí.

Estas son las librerías que usaremos y que es requerido importar para nuestro ejercicio.
In [1]:
import pandas as pd
import numpy as np
import seaborn
%pylab notebook

import hashlib
import humanhash

Tablas Pivote

Es muy común la agrupación de información en formato ‘stack’ donde tenemos filas de datos que demuestran una correlación entre dos sets de valores.

Las tablas pivote son una forma de re-ordenar los datos en una estructura tabular donde podemos agrupar los valores convirtiendo las tuplas entre valores numéricos.

En este caso de ejemplo, crearemos un dataset de prueba con la diversidad de restaurantes en varias ciudades centroamericanas. En esta vamos a comenzar a trabajar con dos columnas, una donde describe cada ciudad y la otra con la variedad de cocina disponible en cada una.

In [2]:
data_restaurantes = {
    'ciudades': ['Guatemala','Guatemala','Guatemala','Guatemala','Guatemala','Guatemala','San José','San José','San José','San José','San José','San Salvador','San Salvador','San Salvador'],
    'culinaria': ['Chapina','Chapina','China','Thai','Italiana','Chapina','Italiana','China','Tica','Chapina','Tica','Tica','Italiana','China']
}

restaurantes_dataframe_pares = pd.DataFrame(data_restaurantes)
restaurantes_dataframe_pares
Out[2]:
ciudades culinaria
0 Guatemala Chapina
1 Guatemala Chapina
2 Guatemala China
3 Guatemala Thai
4 Guatemala Italiana
5 Guatemala Chapina
6 San José Italiana
7 San José China
8 San José Tica
9 San José Chapina
10 San José Tica
11 San Salvador Tica
12 San Salvador Italiana
13 San Salvador China

Podemos ver entonces este listado de valores, tupla por tupla. Que tal si queremos contar la presencia de cada tipo de cocina en cada región. Probemos utilizando entonces el comando DataFrame.pivot_table de Pandas.

Este pide unos cuantos argumentos los que podemos ver en la documentación. Unos cuantos son obvios, como el definir las filas y columnas que esperamos de la tabla objetivo. Sin embargo, lo más notable es que ya que los tipos de datos que estamos utilizando no son numéricos, es necesario que definamos una funcion de agrupación que nos permita contar la cantidad de instancias de cada combinación.

In [3]:
def funcion_agrupacion(elemento):
    return True

agrupacion_culinaria = restaurantes_dataframe_pares.pivot_table(
    index=["ciudades"],
    columns="culinaria",
    aggfunc=funcion_agrupacion,
    fill_value=False)
agrupacion_culinaria
Out[3]:
culinaria Chapina China Italiana Thai Tica
ciudades
Guatemala True True True True False
San José True True True False True
San Salvador False True True False True

Hmm, esto ya se ve con la forma que queremos, sin embargo solo nos muestra la presencia o ausencia de algún tipo de cocina. Esto es fácil de explicar ya que definimos nuestra función de agrupación como retornar True si existe presencia a retornar False si No. ¿Qué tal si hacemos una mejor función de agrupación?

In [4]:
def funcion_agrupacion(elemento):
    '''Contemos cuantas instancias de cada tupla existen.'''
    ## El comando len(iterable) cuenta la cantidad de elementos que tiene el objeto iterable que le pasemos
    ## los elementos iterables pueden ser listas normales, Series de NumPy o Pandas, o diccionarios y otros tipos de datos.
    return len(elemento)
agrupacion_culinaria = restaurantes_dataframe_pares.pivot_table(index=["ciudades"], columns="culinaria", aggfunc=lambda x: funcion_agrupacion(x), fill_value=0)
agrupacion_culinaria
Out[4]:
culinaria Chapina China Italiana Thai Tica
ciudades
Guatemala 3 1 1 1 0
San José 1 1 1 0 2
San Salvador 0 1 1 0 1

¡Genial! Ahora ya tenemos agrupadas estas de una forma coherente. Ahora ya podemos seguir manipulando y editando estos datos. Pero, ¿qué tal si hacemos un poco más simple esta llamada? Al final nuestra función de agrupación lo unico que hace es contar la cantidad de tuplas sobre las cuales aplica el pivote. ¿Qué tal si lo hacemos un poco más simple?

In [5]:
agrupacion_culinaria = restaurantes_dataframe_pares.pivot_table(
    index=["ciudades"], 
    columns="culinaria", 
    aggfunc=len, ## Enviamos directamente la función de agrupación. Entre otras funcionas de agrupacíon útiles está np.sum (la función de suma de NumPy) y np.mean (media)
    fill_value=0)
agrupacion_culinaria
Out[5]:
culinaria Chapina China Italiana Thai Tica
ciudades
Guatemala 3 1 1 1 0
San José 1 1 1 0 2
San Salvador 0 1 1 0 1

Claro, la tabla resultante se comporta exactamente igual y tiene todas las propiedades nativas de los DataFrames. ¿Qué tal si limitamos la query a solo los lugares en ciudad de Guatemala?

In [6]:
agrupacion_culinaria.query('ciudades == ["Guatemala"]')
Out[6]:
culinaria Chapina China Italiana Thai Tica
ciudades
Guatemala 3 1 1 1 0
In [7]:
help(restaurantes_dataframe_pares.pivot_table)
Help on method pivot_table in module pandas.core.reshape.pivot:

pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All') method of pandas.core.frame.DataFrame instance
    Create a spreadsheet-style pivot table as a DataFrame. The levels in the
    pivot table will be stored in MultiIndex objects (hierarchical indexes) on
    the index and columns of the result DataFrame
    
    Parameters
    ----------
    data : DataFrame
    values : column to aggregate, optional
    index : column, Grouper, array, or list of the previous
        If an array is passed, it must be the same length as the data. The list
        can contain any of the other types (except list).
        Keys to group by on the pivot table index.  If an array is passed, it
        is being used as the same manner as column values.
    columns : column, Grouper, array, or list of the previous
        If an array is passed, it must be the same length as the data. The list
        can contain any of the other types (except list).
        Keys to group by on the pivot table column.  If an array is passed, it
        is being used as the same manner as column values.
    aggfunc : function or list of functions, default numpy.mean
        If list of functions passed, the resulting pivot table will have
        hierarchical columns whose top level are the function names (inferred
        from the function objects themselves)
    fill_value : scalar, default None
        Value to replace missing values with
    margins : boolean, default False
        Add all row / columns (e.g. for subtotal / grand totals)
    dropna : boolean, default True
        Do not include columns whose entries are all NaN
    margins_name : string, default 'All'
        Name of the row / column that will contain the totals
        when margins is True.
    
    Examples
    --------
    >>> df
       A   B   C      D
    0  foo one small  1
    1  foo one large  2
    2  foo one large  2
    3  foo two small  3
    4  foo two small  3
    5  bar one large  4
    6  bar one small  5
    7  bar two small  6
    8  bar two large  7
    
    >>> table = pivot_table(df, values='D', index=['A', 'B'],
    ...                     columns=['C'], aggfunc=np.sum)
    >>> table
              small  large
    foo  one  1      4
         two  6      NaN
    bar  one  5      4
         two  6      7
    
    Returns
    -------
    table : DataFrame
    
    See also
    --------
    DataFrame.pivot : pivot without aggregation that can handle
        non-numeric data

In [8]:
## Con el argumento Margins, Panda calcula los valores sumados de los totales por agrupación.
agrupacion_culinaria_m = restaurantes_dataframe_pares.pivot_table(
    index=["ciudades"],
    columns="culinaria",
    aggfunc=len,
    fill_value=0,
    margins=True,
    margins_name="Total")
agrupacion_culinaria_m
Out[8]:
culinaria Chapina China Italiana Thai Tica Total
ciudades
Guatemala 3.0 1.0 1.0 1.0 0.0 6.0
San José 1.0 1.0 1.0 0.0 2.0 5.0
San Salvador 0.0 1.0 1.0 0.0 1.0 3.0
Total 4.0 3.0 3.0 1.0 3.0 14.0

Múltiples Valores y Múltiples Indices

¿Qué tal si tenemos datos que tienen una estructura Jerárquica inherente? Podemos utilizar la misma forma de multi indexación que vimos en el seminario pasado, lo importante es que a la hora de la definición del índice, Pandas es capaz de manipularlos e inteligentemente ordenar los niveles acorde.

In [9]:
restaurantes_dataframe_pares['estrellas'] = [5,3,3,5,3,1,2,2,4,3,4,3,2,3]
restaurantes_dataframe_estrellas = restaurantes_dataframe_pares
restaurantes_dataframe_estrellas
Out[9]:
ciudades culinaria estrellas
0 Guatemala Chapina 5
1 Guatemala Chapina 3
2 Guatemala China 3
3 Guatemala Thai 5
4 Guatemala Italiana 3
5 Guatemala Chapina 1
6 San José Italiana 2
7 San José China 2
8 San José Tica 4
9 San José Chapina 3
10 San José Tica 4
11 San Salvador Tica 3
12 San Salvador Italiana 2
13 San Salvador China 3

Pivotando sobre la especialidad culinaria y estrellas, podemos las ciudades con la mayor oferta culinaria, o cuales tienen el mejor promedio de estrellas.

In [10]:
agrupacion_culinaria_promedio_estrellas = restaurantes_dataframe_estrellas.pivot_table(
    index=["ciudades"], 
    values=["culinaria", "estrellas"], 
    aggfunc={"culinaria":len,"estrellas":np.mean},
    fill_value=0)
agrupacion_culinaria_promedio_estrellas
Out[10]:
culinaria estrellas
ciudades
Guatemala 6 3.333333
San José 5 3.000000
San Salvador 3 2.666667

¿Qué tal si queremos ver cuantas estrellas en promedio tienen los restaurantes, por clase de comida, por ciudad?

In [11]:
agrupacion_culinaria_por_estrellas = restaurantes_dataframe_estrellas.pivot_table(
    index=["culinaria"], 
    values=["estrellas"], 
    columns=["estrellas"],
    aggfunc={"estrellas":np.mean},
    fill_value=0)
agrupacion_culinaria_por_estrellas
Out[11]:
estrellas
estrellas 1 2 3 4 5
culinaria
Chapina 1 0 3 0 5
China 0 2 3 0 0
Italiana 0 2 3 0 0
Thai 0 0 0 0 5
Tica 0 0 3 4 0
In [12]:
agrupacion_culinaria_por_estrellas = restaurantes_dataframe_estrellas.pivot_table(
    index=["culinaria"], 
    values=["estrellas"], 
    columns=["estrellas"],
    aggfunc={"estrellas":len},
    fill_value=0)
agrupacion_culinaria_por_estrellas
Out[12]:
estrellas
estrellas 1 2 3 4 5
culinaria
Chapina 1 0 2 0 1
China 0 1 2 0 0
Italiana 0 2 1 0 0
Thai 0 0 0 0 1
Tica 0 0 1 2 0

Hmm… esto no es muy útil, solo nos dice tautológicamente, que los restaurantes de ‘n’ estrellas tienen ‘n’ estrellas. ¿Pueden ver porque el error?

In [13]:
agrupacion_culinaria_por_estrellas = restaurantes_dataframe_estrellas.pivot_table(
    index=["ciudades"], 
    values=["estrellas"], 
    columns=["culinaria"], ## Aqui es obvio ver que lo que queremos es diferenciar por variedad culinaria.
    aggfunc={"estrellas":np.mean},
    fill_value=0)
agrupacion_culinaria_por_estrellas
Out[13]:
estrellas
culinaria Chapina China Italiana Thai Tica
ciudades
Guatemala 3 3 3 5 0
San José 3 2 2 0 4
San Salvador 0 3 2 0 3
In [14]:
agrupacion_culinaria_por_estrellas.plot(kind="bar")
<IPython.core.display.Javascript object>
Out[14]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fc53ffa1a58>

Entonces, recapitulando:

¿De qué nos sirven las tablas pivote?

¿Que clase de operación representan?

¿En que casos podemos usarlas?

Agrupando, parte dos

Ya vimos algunos de los criterios básicos de agrupación en el primer webinar, ahora podemos avanzar un poco, combinando agrupación con pivote.

Tambien podemos usar stack, que es otra forma de agrupación basada en índices.

In [15]:
maga_fitosanitario = pd.read_csv("MAGA - CERTIFICADOS FITOSANITARIOS.csv")
In [16]:
hashlib.md5("Hola".encode("UTF-8")).hexdigest()
Out[16]:
'f688ae26e9cfa3ba6235477831d5122e'
In [17]:
pd.set_option('display.float_format', lambda x: '%.1f' % x)

## Vamos a limpiar un poco de información
def ofusca_nombre(nombre):
    return humanhash.humanize(hashlib.md5(nombre.encode("UTF-8")).hexdigest())

maga_fitosanitario["Solicitante"] = maga_fitosanitario["Solicitante"].map(ofusca_nombre)
maga_fitosanitario["Fecha Autorización"] = maga_fitosanitario["Fecha Autorización"].map(pd.Timestamp)
In [18]:
def clean_q(input_object):
    from re import sub  ## importamos la función sub, que substituye utilizando patrones
    ## https://es.wikipedia.org/wiki/Expresión_regular
    
    ## NaN es un objeto especial que representa un valor numérico invalido, Not A Number.
    if input_object == NaN:
        return 0
    inp = unicode(input_object) # De objeto a un texto
    cleansed_00 = sub(r'\.000', '000', inp) 
    cleansed_nonchar = sub(r'[^0-9]+', '', cleansed_00)
    if cleansed_nonchar == '':
        return 0
    return cleansed_nonchar

maga_fitosanitario["Kg. Netos"] = maga_fitosanitario["Kg. Netos"].map(clean_q).astype(float)
In [36]:
maga_fitosanitario["Kg. Netos"].head()
Out[36]:
0   1360779.0
1    816467.0
2   3483624.0
3   3483624.0
4    151800.0
Name: Kg. Netos, dtype: float64
In [20]:
maga_fitosanitario = pd.read_csv("MAGA - CERTIFICADOS FITOSANITARIOS - LIMPIO.csv")
maga_fitosanitario.head()
Out[20]:
Incidente Fecha Autorización Solicitante Permiso Producto Categoría CIF $ Kg. Netos Aduana País procedencia País origen Otra fuente de origen
0 49 2014-04-04 sodium-pasta-glucose-mexico 142432 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 125.0 1360779.0 MELCHOR DE MENCOS Belice Belice NaN
1 50 2014-04-04 sodium-pasta-glucose-mexico 142425 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 75.0 816467.0 MELCHOR DE MENCOS Belice Belice NaN
2 275 2014-07-04 robert-vermont-one-robert 142479 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 2584.1 3483624.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
3 276 2014-07-04 robert-vermont-one-robert 142480 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 2584.1 3483624.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
4 177 2014-07-04 zebra-missouri-arkansas-island 142478 HARINA DE TRIGO HARINA DE TRIGO 81601.2 151800.0 TECUN UMAN México México NaN
In [21]:
maga_fitosanitario.groupby("Producto").sum().sort_values("CIF $", ascending=False).head(20)
Out[21]:
Permiso CIF $ Kg. Netos
Producto
MAIZ AMARILLO 53491946 183595249.4 2753711966.0
HARINA DE SOYA 18899910 56391529.9 177684115.0
ARROZ EN GRANZA 3201212 24568825.5 59041504.0
HARINA DE TRIGO 76664602 24272107.3 54953080.0
AJONJOLI NATURAL 9215686 15985707.0 20396870.0
ARROZ GRANZA 15088878 13883822.8 57978262.0
ALGODON 9014988 12028250.9 200973442.0
ALGODON SIN CARDAR NI PEINAR 5222374 8151960.6 19619672.0
MADERA DE PINO (SECA) 9285734 6498009.3 11404341.0
ARROZ 8758770 6111828.4 9988554.0
FRIJOL SOYA 1596785 5624212.9 17070365.0
MANZANAS 33723186 5591158.4 20625086.0
SEMOLA DE TRIGO 56157142 4567556.7 8012544.0
FRIJOL DE SOYA 434597 4262725.7 7231349.0
SEMILLA DE MELON 6774325 4132506.5 1113131.0
MAIZ BLANCO 4420695 4036005.2 161351106.0
AVENA PELADA Y ESTABILIZADA 3052102 3316810.3 51045868.0
MALTA DE CEBADA 440964 3160297.3 5316000.0
HARINA DE MAIZ 35816036 3134320.9 5236321.0
ALGODON SIN PEINAR NI CARDAR 1309843 2879479.1 1354471.0
In [22]:
maga_productos_pivot = maga_fitosanitario.pivot_table(
    index=["Categoría", "Producto"], 
    values=["CIF $", "Permiso","Kg. Netos"], 
    aggfunc={"CIF $":np.sum,"Permiso":len, "Kg. Netos": np.sum},
    fill_value=0)
In [23]:
maga_productos_pivot
Out[23]:
CIF $ Kg. Netos Permiso
Categoría Producto
AJONJOLI AJONJOLI DESCORTEZADO 250093.8 94375 1
AJONJOLI NATURAL 10702707.0 15867870 46
ALGODÓN ALGODON 12028250.9 200973442 62
ALGODON (BLANQUEADO) 52969.2 185857 1
ALGODON (EN PACAS) 35604.5 21805 1
ALGODON (PACAS) 48087.7 21830 1
ALGODON (SIN CARDAR NI PEINAR) 1934207.8 858309 10
ALGODON (SIN PEINAR NI CARDAR) 507479.4 238664 2
ALGODON BLANQUEADO 52658.4 175528 1
ALGODON SI CARDAR NI PEINAR 45158.1 19791 1
ALGODON SIN CARDAR NI PEINAR 8151960.6 19619672 36
ALGODON SIN PEINAR NI CARDAR 2879479.1 1354471 9
DESPERDICIO DE HILADOS DE ALGODON 32070.3 2148381 2
PACAS DE ALGODON 371093.7 196171 9
ALMIDON DE MAIZ ALMIDON (GLOBE AA SPV/25 KG) DE MAIZ 12500.0 20000 1
ALMIDON DE MAIZ 487747.5 872125 19
ALMIDON DE MAIZ (CORRUPAC) 13515.0 21250 1
ALMIDON DE MAIZ AA 7075.0 12500 1
ALMIDON DE MAIZ CORRUPAC 59038.5 105000 5
ALPISTE ALPISTE 54856.6 5048035 3
ARBOLES NATURALES SEMILLA DE TECA (TECTONA GRANDIS) 1388.6 60 1
SEMILLAS DE ARBOLES (Lluvia de oro y Papaya) 66.0 1 1
SEMILLAS DE ARBOLES (Lluvia de oro, Papaya y Strelizia) 127.6 22 1
ARROZ ARROZ 6111828.4 9988554 60
ARROZ (PARBOIL) 97606.0 11965890 2
ARROZ EN GRANO 20400.5 36114 4
ARROZ EN GRANZA 21791713.2 52447074 20
ARROZ EN ORO 55507.9 16873826 4
ARROZ ESCALDADO 240050.0 661234 10
ARROZ GRANZA 13883822.8 57978262 104
SUSTRATOS FIBRA DE COCO 78753.3 101682 4
FIBRA DE COCO (SUSTRATO) 117332.5 172140 7
FIBRA DE COCO TRATADA 132302.4 2770913 5
FIBRA DE ESTOPA DE COCO 375.0 6000 1
PEAT MOSS 655093.3 1226466 25
PEAT MOSS (BOLSAS DE ENRAIZADORES) 16425.0 48700 1
PEAT MOSS (SUSTRATO ) 3258.7 114288 1
PEAT MOSS (SUSTRATO DARK VEGETABLE MIX) 7151.8 23026 1
PEAT MOSS (SUSTRATO DE TURBA) 16068.0 71590 1
PEAT MOSS (SUSTRATO) 99434.2 263060 3
PEAT MOSS (TURBA) 213577.5 219207 3
PEAT MOSS SPHAGNUM (SUSTRATO DE TURBA) 15803.5 44000 1
PEAT SPHAGNUM 6905.0 21700 1
PEAT SPHAGNUM (SOD PEAT 0-20 NEUTRALIZED) 6870.5 22800 1
POLVO DE ESTOPA DE COCO 1750.0 8400 1
SUSTRATO ABONO DE TURBA 7795.6 22000 1
SUSTRATO DE COCO (COCOS NUCIFERA) 500.0 1004 1
SUSTRATO PEAT MOSS SPHAGNUM SPP (ABONO DE ORIGEN VEGETAL) 7900.2 25700 1
SUSTRATO SPAGNUM (MUSGO ESPANGINEO SECO) 12740.0 3185 1
TABACO EN RAMA SEMILLA DE TABACO 73396.5 10480 5
SEMILLAS DE TABACO 68060.4 35477 2
TELA DE YUTE SACO DE YUTE 42250.0 18200 1
SACO DE YUTE (40X28″ 460 grms/m2) 21624.0 15640 1
SACO DE YUTE (40×28″ 460 grms/m2) 43248.0 31280 2
SACOS DE YUTE 265198.1 669894 7
SACOS DE YUTE (28X40″ 750GR) 42250.0 18200 1
TELA DE YUTE 392247.7 307970 14
TRIGO EN ESTADO NATURAL SEMILLA DE TRIGO 300.0 20 2
TRIGO 201382.9 506000 24
TRIGO (ROJO SUAVE DE INVIERNO) 517598.6 1600000 2

1227 rows × 3 columns

In [24]:
maga_aduanas_pivot = maga_fitosanitario.pivot_table(
    index=["País origen", "Aduana"], 
    values=["CIF $", "Kg. Netos"],
    aggfunc={"CIF $":np.sum,"Kg. Netos":np.mean},
    fill_value=0)
maga_aduanas_pivot
Out[24]:
CIF $ Kg. Netos
País origen Aduana
ALEMANIA EXPRESS AEREO 102326.9 408.7
PUERTO QUETZAL 1727517.6 3000000.0
SANTO TOMAS DE CASTILLA 10050.2 16000.0
ARGENTINA PEDRO DE ALVARADO 3166.1 306817.0
PUERTO BARRIOS 163440.7 72900.0
PUERTO QUETZAL 187991.7 45965.1
SANTO TOMAS DE CASTILLA 410929.5 42113.6
AUSTRALIA EXPRESS AEREO 94350.0 2775.0
PUERTO QUETZAL 26932.2 21375.0
SANTO TOMAS DE CASTILLA 113750.0 3464.0
TECUN UMAN 5803.1 546201.0
Alemania EXPRESS AEREO 29503.2 48.5
Argentina SANTO TOMAS DE CASTILLA 15510.0 22000.0
BANGLADESH PUERTO QUETZAL 48274.4 16425.0
SANTO TOMAS DE CASTILLA 72000.0 537894.0
BELGICA EXPRESS AEREO 91348.9 1203.0
PUERTO QUETZAL 1855830.6 1500078.0
TECUN UMAN 192549.9 65179.2
BELICE MELCHOR DE MENCOS 547047.4 1097158.3
BOLIVIA PUERTO QUETZAL 91800.0 18000.0
BRASIL EXPRESS AEREO 121048.1 11588.5
PUERTO BARRIOS 245407.8 17108.0
SANTO TOMAS DE CASTILLA 3604767.2 382245.2
BURKINA FASO SANTO TOMAS DE CASTILLA 42888.0 19500.0
Belice MELCHOR DE MENCOS 45400.0 578402.5
CANADÁ EXPRESS AEREO 72.1 458.0
PUERTO BARRIOS 551903.1 51886.2
PUERTO QUETZAL 908538.0 175239.1
SANTO TOMAS DE CASTILLA 1231395.6 94833.4
CHAD PUERTO QUETZAL 35640.0 18000.0
PERÚ EXPRESS AEREO 2572758.1 12905.7
PUERTO QUETZAL 341275.7 14211.7
SANTO TOMAS DE CASTILLA 49007.5 5258.3
POLONIA EXPRESS AEREO 6366.9 30.0
PORTUGAL EXPRESS AEREO 667.3 12.0
Países Bajos EXPRESS AEREO 6890.2 40.0
SANTO TOMAS DE CASTILLA 586587.1 18211.0
Perú EXPRESS AEREO 2428.0 500.0
REINO UNIDO EXPRESS AEREO 225.2 42.0
REPÚBLICA DOMINICANA SANTO TOMAS DE CASTILLA 734869.1 1859816.9
SRI LANKA PUERTO QUETZAL 711008.5 52775.5
SANTO TOMAS DE CASTILLA 665303.2 381409.6
SUDÁFRICA EXPRESS AEREO 310826.5 271127.0
SUDÁN PUERTO QUETZAL 36826.8 12412.5
SUECIA EXPRESS AEREO 72927.0 392008.0
PUERTO QUETZAL 1827487.7 1500000.0
TAILANDIA EXPRESS AEREO 226567.5 16619.1
PUERTO QUETZAL 28765.0 1750.0
TAIWAN EXPRESS AEREO 205971.6 11966.5
VALLE NUEVO 1200.0 70.0
TANZANIA PUERTO QUETZAL 330340.0 20000.0
TURQUÍA EXPRESS AEREO 262.9 145.0
URUGUAY SANTO TOMAS DE CASTILLA 1485896.5 103641.5
UZBEKISTÁN SANTO TOMAS DE CASTILLA 106000.0 100240.0
Uruguay SANTO TOMAS DE CASTILLA 59007.8 108215.0
VENEZUELA PUERTO QUETZAL 13881240.0 254221.7
SANTO TOMAS DE CASTILLA 1185600.0 197600.0
VIETNAM EXPRESS AEREO 163930.0 10129.0
PUERTO QUETZAL 420550.0 19750.0
YEMEN PUERTO QUETZAL 167528.0 24300.0

186 rows × 2 columns

Que tal si indagamos mas en las categorias que se importan de cada país.

In [25]:
maga_aduanas_pivot = maga_fitosanitario.pivot_table(
    index=["País origen", "Aduana", "Categoría"], 
    values=["CIF $"], 
    aggfunc={"CIF $":np.sum},
    fill_value=0)
maga_aduanas_pivot
Out[25]:
CIF $
País origen Aduana Categoría
ALEMANIA EXPRESS AEREO ESQUEJES RIZOMAS BULBOS 72024.6
MATERIA PRIMA PARA ALIMENTOS 19900.5
SEMILLAS DE FLORES 475.8
SEMILLAS DE HORTALIZA 9926.0
PUERTO QUETZAL MALTA 1727517.6
SANTO TOMAS DE CASTILLA MALTA 10050.2
ARGENTINA PEDRO DE ALVARADO MAIZ PARA CONSUMO HUMANO 3166.1
PUERTO BARRIOS FRIJOL NEGRO 139899.7
FRIJOL PINTO 23541.0
PUERTO QUETZAL FRUTAS 60811.9
GRANOS 108570.0
SEMILLAS DE FLORES 18609.9
SANTO TOMAS DE CASTILLA GRANOS 171417.0
MAIZ PARA CONSUMO HUMANO 89333.0
MAIZ PARA ELAB DE CONCENTRADOS 34881.5
SEMILLAS DE FLORES 94778.0
SEMILLAS DE HORTALIZA 20520.0
AUSTRALIA EXPRESS AEREO SEMILLAS DE HORTALIZA 94350.0
PUERTO QUETZAL MADERA CEPILLADA 26932.2
SANTO TOMAS DE CASTILLA SEMILLAS DE HORTALIZA 113750.0
TECUN UMAN MADERA ASERRADA 5803.1
Alemania EXPRESS AEREO ESQUEJES RIZOMAS BULBOS 26028.2
SEMILLAS DE HORTALIZA 3475.0
Argentina SANTO TOMAS DE CASTILLA SEMILLAS DE FLORES 15510.0
BANGLADESH PUERTO QUETZAL TELA DE YUTE 48274.4
SANTO TOMAS DE CASTILLA TELA DE YUTE 72000.0
BELGICA EXPRESS AEREO SEMILLAS DE HORTALIZA 91348.9
PUERTO QUETZAL MALTA 1855830.6
TECUN UMAN ALMIDON DE MAIZ 10500.0
HARINA DE TRIGO 162327.3
SUDÁN PUERTO QUETZAL ESPECIAS 36826.8
SUECIA EXPRESS AEREO SEMILLAS DE HORTALIZA 72927.0
PUERTO QUETZAL MALTA 1827487.7
TAILANDIA EXPRESS AEREO ESQUEJES RIZOMAS BULBOS 10223.5
FLORES 4288.4
SEMILLAS DE FLORES 5.2
SEMILLAS DE FRUTAS 611.3
SEMILLAS DE HORTALIZA 210959.6
SEMOLA DE TRIGO 479.6
PUERTO QUETZAL SEMILLAS DE HORTALIZA 28765.0
TAIWAN EXPRESS AEREO ESQUEJES RIZOMAS BULBOS 1152.0
FLORES 27781.0
SEMILLAS DE FRUTAS 80970.4
SEMILLAS DE HORTALIZA 96068.2
VALLE NUEVO FLORES 1200.0
TANZANIA PUERTO QUETZAL SEMILLAS DE FLORES 330340.0
TURQUÍA EXPRESS AEREO SEMILLAS DE FLORES 223.7
SEMILLAS DE HORTALIZA 39.2
URUGUAY SANTO TOMAS DE CASTILLA ARROZ 463200.0
MADERA ASERRADA 902423.4
MADERA CEPILLADA 120273.1
UZBEKISTÁN SANTO TOMAS DE CASTILLA ARROZ 106000.0
Uruguay SANTO TOMAS DE CASTILLA MADERA CEPILLADA 59007.8
VENEZUELA PUERTO QUETZAL AJONJOLI 8910240.0
HORTALIZAS 4971000.0
SANTO TOMAS DE CASTILLA AJONJOLI 873600.0
HORTALIZAS 312000.0
VIETNAM EXPRESS AEREO SEMILLAS DE HORTALIZA 163930.0
PUERTO QUETZAL ESPECIAS 420550.0
YEMEN PUERTO QUETZAL ESPECIAS 167528.0

569 rows × 1 columns

In [26]:
maga_aduanas_pivot_top10 = maga_aduanas_pivot.sort_values("CIF $", ascending=False).head(10)
In [27]:
maga_aduanas_pivot_top10.plot(kind="barh")
<IPython.core.display.Javascript object>
Out[27]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fc53d5e0ac8>

Tambien es util mostrar la tabla, podemos ponerle un poco de estilo con la funcionalidad de Seaborn + Pandas

In [28]:
cm_paleta_verde = seaborn.light_palette("green", as_cmap=True)
s = maga_aduanas_pivot_top10.style.background_gradient(cmap=cm_paleta_verde)
s
Out[28]:
CIF $
País origen Aduana Categoría
ESTADOS UNIDOS PUERTO QUETZAL MAIZ PARA ELAB DE CONCENTRADOS 1.86755e+08
HARINA DE SOYA 5.61949e+07
ARROZ 3.27899e+07
SANTO TOMAS DE CASTILLA ALGODÓN 2.14909e+07
MEXICO TECUN UMAN HARINA DE TRIGO 1.86481e+07
VENEZUELA PUERTO QUETZAL AJONJOLI 8.91024e+06
ESTADOS UNIDOS PUERTO QUETZAL SOYA 8.52571e+06
FRUTAS 6.72475e+06
CHILE PUERTO QUETZAL MADERA ASERRADA 5.71528e+06
VENEZUELA PUERTO QUETZAL HORTALIZAS 4.971e+06
In [29]:
maga_aduanas_pivot = maga_fitosanitario.pivot_table(
    index=["País origen", "Aduana", "Categoría"], 
    values=["CIF $"], 
    aggfunc={"CIF $":np.sum},
    fill_value=0)
maga_aduanas_pivot
cm_paleta_verde = seaborn.light_palette("green", as_cmap=True)
s = maga_aduanas_pivot_top10.style.background_gradient(cmap=cm_paleta_verde)
s
Out[29]:
CIF $
País origen Aduana Categoría
ESTADOS UNIDOS PUERTO QUETZAL MAIZ PARA ELAB DE CONCENTRADOS 1.86755e+08
HARINA DE SOYA 5.61949e+07
ARROZ 3.27899e+07
SANTO TOMAS DE CASTILLA ALGODÓN 2.14909e+07
MEXICO TECUN UMAN HARINA DE TRIGO 1.86481e+07
VENEZUELA PUERTO QUETZAL AJONJOLI 8.91024e+06
ESTADOS UNIDOS PUERTO QUETZAL SOYA 8.52571e+06
FRUTAS 6.72475e+06
CHILE PUERTO QUETZAL MADERA ASERRADA 5.71528e+06
VENEZUELA PUERTO QUETZAL HORTALIZAS 4.971e+06
In [30]:
maga_fitosanitario
Out[30]:
Incidente Fecha Autorización Solicitante Permiso Producto Categoría CIF $ Kg. Netos Aduana País procedencia País origen Otra fuente de origen
0 49 2014-04-04 sodium-pasta-glucose-mexico 142432 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 125.0 1360779.0 MELCHOR DE MENCOS Belice Belice NaN
1 50 2014-04-04 sodium-pasta-glucose-mexico 142425 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 75.0 816467.0 MELCHOR DE MENCOS Belice Belice NaN
2 275 2014-07-04 robert-vermont-one-robert 142479 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 2584.1 3483624.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
3 276 2014-07-04 robert-vermont-one-robert 142480 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 2584.1 3483624.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
4 177 2014-07-04 zebra-missouri-arkansas-island 142478 HARINA DE TRIGO HARINA DE TRIGO 81601.2 151800.0 TECUN UMAN México México NaN
5 152 2014-07-04 beryllium-aspen-colorado-fish 142468 HARINA DE TRIGO HARINA DE TRIGO 11726.3 20866.0 SAN CRISTOBAL El Salvador El Salvador NaN
6 153 2014-07-04 beryllium-aspen-colorado-fish 142467 HARINA DE TRIGO HARINA DE TRIGO 11726.3 20866.0 SAN CRISTOBAL El Salvador El Salvador NaN
7 155 2014-07-04 beryllium-aspen-colorado-fish 142469 HARINA DE TRIGO HARINA DE TRIGO 11726.3 20866.0 SAN CRISTOBAL El Salvador El Salvador NaN
8 156 2014-07-04 beryllium-aspen-colorado-fish 142470 HARINA DE TRIGO HARINA DE TRIGO 11726.3 20866.0 SAN CRISTOBAL El Salvador El Salvador NaN
9 162 2014-07-04 robert-vermont-one-robert 142474 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 2584.1 3483624.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
10 164 2014-07-04 robert-vermont-one-robert 142473 CASCARILLA DE ARROZ MATERIA PRIMA PARA CONCENTRADOS 2584.1 3483624.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
11 68 2014-07-04 kentucky-stream-crazy-winner 142440 CASCARILLA DE ARROZ MATERIA PRIMA PARA ALIMENTOS 500.0 16000.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
12 122 2014-07-04 echo-fillet-red-november 142463 MAIZ AMARILLO MAIZ PARA ELAB DE CONCENTRADOS 11250.0 68182.0 MELCHOR DE MENCOS Belice Belice NaN
13 123 2014-07-04 echo-fillet-red-november 142453 MAIZ AMARILLO MAIZ PARA ELAB DE CONCENTRADOS 11250.0 68182.0 MELCHOR DE MENCOS Belice Belice NaN
14 142 2014-07-04 montana-mockingbird-lactose-paris 142465 ARROZ PARBOIL ARROZ 49995.0 59875.0 SANTO TOMAS DE CASTILLA Estados Unidos Estados Unidos ORIGEN: ESTADO DE TEXAS.
15 467 2014-08-04 blue-alanine-aspen-ink 142545 MAIZ AMARILLO MAIZ PARA ELAB DE CONCENTRADOS 891909.3 3952402.0 PUERTO QUETZAL Estados Unidos Estados Unidos NaN
16 476 2014-08-04 august-alabama-william-black 142562 MAIZ AMARILLO MAIZ PARA ELAB DE CONCENTRADOS 156337.0 290316.0 SANTO TOMAS DE CASTILLA Estados Unidos Estados Unidos ORIGEN: ESTADO DE TEXAS.
17 530 2014-08-04 zebra-missouri-arkansas-island 142565 HARINA DE TRIGO HARINA DE TRIGO 81994.7 151800.0 TECUN UMAN MÓNACO MÓNACO NaN
18 352 2014-08-04 helium-jupiter-april-comet 142496 HARINA DE TRIGO HARINA DE TRIGO 10390.0 2268.0 TECUN UMAN México México NaN
19 353 2014-08-04 helium-jupiter-april-comet 142495 HARINA DE TRIGO HARINA DE TRIGO 10307.5 2268.0 TECUN UMAN México México NaN
20 354 2014-08-04 fifteen-venus-fruit-vermont 142494 HARINA DE TRIGO HARINA DE TRIGO 60564.0 13081.0 TECUN UMAN México México NaN
21 355 2014-08-04 king-one-saturn-nevada 142493 HARINA DE TRIGO HARINA DE TRIGO 61622.0 13081.0 TECUN UMAN México México NaN
22 295 2014-08-04 glucose-mike-magazine-table 142501 ARROZ GRANZA ARROZ 30055.3 71470.0 SAN CRISTOBAL EL SALVADOR ESTADOS UNIDOS ORIGEN: ESTADO DE LOUISIANA.
23 299 2014-08-04 cat-alabama-wisconsin-eleven 142500 ARROZ GRANZA ARROZ 454269.8 1093000.0 PUERTO QUETZAL ESTADOS UNIDOS ESTADOS UNIDOS NaN
24 342 2014-08-04 blossom-wyoming-lithium-stairway 142528 CASCARILLA DE ARROZ ARROZ 970.0 1363636.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
25 344 2014-08-04 blossom-wyoming-lithium-stairway 142526 CASCARILLA DE ARROZ ARROZ 970.0 1363636.0 PEDRO DE ALVARADO Nicaragua Nicaragua NaN
26 424 2014-08-04 helium-jupiter-april-comet 142523 HARINA DE TRIGO HARINA DE TRIGO 61094.2 13081.0 TECUN UMAN México México NaN
27 282 2014-08-04 massachusetts-stairway-fifteen-uniform 142498 ARROZ ARROZ 53000.0 100240.0 SANTO TOMAS DE CASTILLA UZBEKISTÁN UZBEKISTÁN NaN
28 448 2014-08-04 island-fish-chicken-purple 142540 HARINA DE TRIGO HARINA DE TRIGO 17990.0 31703.0 PEDRO DE ALVARADO El Salvador El Salvador NaN
29 450 2014-08-04 lion-paris-snake-floor 142550 HARINA DE TRIGO HARINA DE TRIGO 16992.5 31703.0 SAN CRISTOBAL El Salvador El Salvador NaN
7646 16472 2014-10-14 bravo-fish-king-carolina 148721 SEMILLA DE CHILE PIMIENTO Y TOMATE. SEMILLAS DE HORTALIZA 101.0 63.0 EXPRESS AEREO HOLANDA HOLANDA PAIS DE ORIGEN: CHINA Y HOLANDA.
7647 16484 2014-10-14 item-johnny-undress-william 148724 EJOTE FRANCES HORTALIZAS 4533.4 3878.0 SAN CRISTOBAL NICARAGUA NICARAGUA NaN
7648 16485 2014-10-14 cup-vermont-emma-johnny 148726 AJO HORTALIZAS 21332.3 26000.0 PUERTO QUETZAL CHINA CHINA NaN
7649 16486 2014-10-14 cup-vermont-emma-johnny 148725 AVENA EN HOJUELAS AVENA EN HOJUELAS 29357.6 52000.0 PUERTO QUETZAL CHILE CHILE NaN
7650 16487 2014-10-14 avocado-island-oxygen-two 148728 AGUACATE HASS FRUTAS 30438.0 23040.0 TECUN UMAN MEXICO MEXICO NaN
7651 16488 2014-10-14 friend-papa-delaware-bacon 148723 MANDARINA FRUTAS 2500.0 24000.0 LA MESILLA MEXICO MEXICO NaN
7652 16490 2014-10-14 island-earth-july-quebec 148729 GRAÑONES DE MAIZ (MAIZ AMARILLO SIN GERMEN) MAIZ PARA CONSUMO HUMANO 13850.8 19278.0 PUERTO BARRIOS ESTADOS UNIDOS ESTADOS UNIDOS ORIGEN: ESTADO DE ILLINOIS.
7653 16491 2014-10-14 island-earth-july-quebec 148730 GRAÑONES DE MAIZ (MAIZ AMARILLO SIN GERMEN) MAIZ PARA CONSUMO HUMANO 13850.8 19278.0 PUERTO BARRIOS ESTADOS UNIDOS ESTADOS UNIDOS ORIGEN: ESTADO DE ILLINOIS.
7654 16492 2014-10-14 ink-emma-fillet-maryland 148734 MANDARINA FRUTAS 1250.0 12000.0 LA MESILLA MEXICO MEXICO NaN
7655 16493 2014-10-14 ink-emma-fillet-maryland 148733 MANDARINA FRUTAS 2500.0 24000.0 LA MESILLA MEXICO MEXICO NaN
7656 16494 2014-10-14 six-low-bluebird-burger 148732 GLUTEN VITAL DE TRIGO MATERIA PRIMA PARA ALIMENTOS 2886.2 1000.0 TECUN UMAN MEXICO MEXICO NaN
7657 16495 2014-10-14 spaghetti-sad-queen-london 148737 MADERA ASERRADA DE PINO (TRATADA CON CCA) MADERA ASERRADA 19622.2 21602.0 AGUA CALIENTE HONDURAS HONDURAS NaN
7658 16496 2014-10-14 spaghetti-sad-queen-london 148731 MADERA ASERRADA DE PINO (TRATADA CON CCA) MADERA ASERRADA 15313.9 22405.0 AGUA CALIENTE HONDURAS HONDURAS NaN
7659 16500 2014-10-14 robert-berlin-march-pasta 148741 NARANJAS FRUTAS 12500.0 113635.0 ENTRE RIOS HONDURAS HONDURAS NaN
7660 16501 2014-10-14 robert-berlin-march-pasta 148740 NARANJAS FRUTAS 12500.0 113635.0 ENTRE RIOS HONDURAS HONDURAS NaN
7661 16502 2014-10-14 robert-berlin-march-pasta 148738 NARANJAS FRUTAS 15000.0 136362.0 ENTRE RIOS HONDURAS HONDURAS NaN
7662 16503 2014-10-14 robert-berlin-march-pasta 148739 NARANJAS FRUTAS 12500.0 113635.0 ENTRE RIOS HONDURAS HONDURAS NaN
7663 16504 2014-10-14 robert-berlin-march-pasta 148742 NARANJAS FRUTAS 12500.0 113635.0 ENTRE RIOS HONDURAS HONDURAS NaN
7664 16505 2014-10-14 robert-berlin-march-pasta 148743 NARANJAS FRUTAS 12500.0 113635.0 ENTRE RIOS HONDURAS HONDURAS NaN
7665 16506 2014-10-14 juliet-india-fourteen-music 148744 AGUACATE HASS FRUTAS 19000.0 20900.0 TECUN UMAN MEXICO MEXICO NaN
7666 16520 2014-10-14 lion-violet-lactose-robin 148735 SEMILLAS DE CEBOLLA SEMILLAS DE HORTALIZA 100.0 12.0 EXPRESS AEREO ESTADOS UNIDOS ESTADOS UNIDOS ORIGEN: ESTADO DE CALIFORNIA.
7667 16533 2014-10-14 leopard-september-mars-alabama 148745 MADERA DE PINO (SECA) MADERA ASERRADA 145393.9 241260.0 SANTO TOMAS DE CASTILLA BRASIL BRASIL NaN
7668 16534 2014-10-14 iowa-florida-cup-massachusetts 148747 UVAS FRUTAS 31138.0 13500.0 PUERTO QUETZAL ESTADOS UNIDOS ESTADOS UNIDOS ORIGEN: ESTADO DE CALIFORNIA.
7669 16537 2014-10-14 low-vermont-lactose-happy 148748 FRIJOL NEGRO (PARTIDO) FRIJOL NEGRO 50757.4 843696.0 PUERTO QUETZAL MEXICO MEXICO NaN
7670 16538 2014-10-14 alaska-high-steak-florida 148749 UVAS FRUTAS 29380.0 15200.0 PUERTO QUETZAL ESTADOS UNIDOS ESTADOS UNIDOS ORIGEN: ESTADO DE CALIFORNIA.
7671 16539 2014-10-14 alaska-high-steak-florida 148750 CAMOTE FRUTAS 1929.0 284091.0 AGUA CALIENTE HONDURAS HONDURAS NaN
7672 16540 2014-10-14 alaska-high-steak-florida 148751 GUAYABA FRUTAS 4115.4 170455.0 AGUA CALIENTE HONDURAS HONDURAS NaN
7673 16454 2014-10-14 colorado-aspen-romeo-oscar 148722 SEMILLA DE TOMATE SEMILLAS DE HORTALIZA 35.9 595.0 EXPRESS AEREO FRANCIA FRANCIA NaN
7674 11783 2014-10-14 missouri-harry-beer-social 148746 SEMILLA DE PEPINO (VARIEDAD SLICING) SEMILLAS DE HORTALIZA 105.0 399.0 EXPRESS AEREO ESTADOS UNIDOS MEXICO NaN
7675 14742 2014-10-14 charlie-violet-fish-ceiling 148736 SEMILLAS DE MELON, CALABAZA Y SANDIA SEMILLAS DE HORTALIZA 114179.4 681.0 EXPRESS AEREO ISRAEL ISRAEL PAIS DE ORIGEN: ISRAEL, CHILE Y CHINA.

7676 rows × 12 columns

In [31]:
maga_fitosanitario.groupby("Solicitante").sum().sort_values("CIF $", ascending=False).head(10)
Out[31]:
Permiso CIF $ Kg. Netos
Solicitante
papa-cola-cat-utah 2613794 51617483.5 2142316240.0
crazy-december-charlie-leopard 5407306 42385422.8 129173159.0
blue-alanine-aspen-ink 3914255 36726112.8 115987664.0
glucose-network-cardinal-december 1734642 19912544.7 47940184.0
butter-ceiling-uncle-salami 1448580 18986878.8 1276069585.0
nineteen-earth-stairway-nebraska 1738702 16256532.0 66034754.0
fanta-crazy-rugby-salami 8771752 15806525.0 19943562.0
september-red-hamper-ten 3044223 13971536.0 61956905.0
east-cup-summer-mango 2611047 12101661.5 39276980.0
oklahoma-sodium-nevada-four 12670668 9444222.0 100425831.0
In [32]:
maga_fitosanitario.pivot_table(
    index=["Solicitante", "País origen", "Categoría"], 
    values=["CIF $"], 
    aggfunc={"CIF $":np.sum},
    fill_value=0).sort_values("CIF $", ascending=False).head(10)
Out[32]:
CIF $
Solicitante País origen Categoría
papa-cola-cat-utah ESTADOS UNIDOS MAIZ PARA ELAB DE CONCENTRADOS 34161962.8
crazy-december-charlie-leopard ESTADOS UNIDOS MAIZ PARA ELAB DE CONCENTRADOS 28967653.8
blue-alanine-aspen-ink ESTADOS UNIDOS MAIZ PARA ELAB DE CONCENTRADOS 20603138.9
papa-cola-cat-utah ESTADOS UNIDOS HARINA DE SOYA 17455520.7
glucose-network-cardinal-december ESTADOS UNIDOS ARROZ 17135432.4
nineteen-earth-stairway-nebraska ESTADOS UNIDOS MAIZ PARA ELAB DE CONCENTRADOS 16256532.0
butter-ceiling-uncle-salami ESTADOS UNIDOS MAIZ PARA ELAB DE CONCENTRADOS 14778445.5
crazy-december-charlie-leopard ESTADOS UNIDOS HARINA DE SOYA 12628533.6
september-red-hamper-ten ESTADOS UNIDOS MAIZ PARA ELAB DE CONCENTRADOS 10279335.3
fanta-crazy-rugby-salami VENEZUELA AJONJOLI 9783840.0
In [33]:
maga_fitosanitario.pivot_table(
    index=["País procedencia"],
    columns=["Aduana"],
    values=["CIF $"], 
    aggfunc={"CIF $":np.sum},
    fill_value=0).style.background_gradient(cmap=cm_paleta_verde)
Out[33]:
CIF $
Aduana AGUA CALIENTE EL CEIBO EL FLORIDO ENTRE RIOS EXPRESS AEREO FARDOS POSTALES LA ERMITA LA MESILLA MELCHOR DE MENCOS PEDRO DE ALVARADO PUERTO BARRIOS PUERTO QUETZAL SAN CRISTOBAL SANTO TOMAS DE CASTILLA TECUN UMAN VALLE NUEVO ZONA FRANCA DE GUATEMALA
País procedencia
ALEMANIA 0 0 0 0 102327 0 0 0 0 0 0 1.72752e+06 0 1.60688e+06 0 0 0
ARGENTINA 0 0 0 0 0 0 0 0 0 0 163441 187992 0 410929 0 0 0
AUSTRALIA 0 0 0 0 94350 0 0 0 0 0 0 26932.2 0 113750 0 0 0
Alemania 0 0 0 0 29503.2 0 0 0 0 0 0 0 0 0 0 0 0
Argentina 0 0 0 0 0 0 0 0 0 0 0 0 0 15510 0 0 0
BANGLADESH 0 0 0 0 0 0 0 0 0 0 0 48274.4 0 72000 0 0 0
BELGICA 0 0 0 0 0 0 0 0 0 0 0 1.85583e+06 0 0 192550 0 0
BELICE 0 0 0 0 0 0 0 0 547047 0 0 0 0 0 0 0 0
BOLIVIA 0 0 0 0 0 0 0 0 0 0 0 91800 0 0 0 0 0
BRASIL 0 0 0 0 121048 0 0 0 0 0 245408 0 0 3.58179e+06 0 0 0
BURKINA FASO 0 0 0 0 0 0 0 0 0 0 0 0 0 42888 0 0 0
Belice 0 0 0 0 0 0 0 0 45400 0 0 0 0 0 0 0 0
CANADÁ 0 0 0 0 72.11 0 0 0 0 0 551903 1.18703e+06 0 1.2314e+06 0 0 0
CHAD 0 0 0 0 0 0 0 0 0 0 0 77317.2 0 224059 0 0 0
CHILE 0 0 0 0 22150 0 0 0 0 5984.01 0 1.45996e+07 0 1.14601e+06 0 0 0
CHINA 0 0 0 0 35594.8 0 0 0 0 0 0 1.04992e+06 0 0 0 0 0
CHIPRE 0 0 0 0 3532.2 0 0 0 0 0 0 0 0 0 0 0 0
COLOMBIA 0 0 0 0 1.06184e+06 0 0 0 0 0 0 74263.4 0 233124 14780 0 0
COMORAS 0 0 0 0 2264.65 0 0 0 0 0 0 0 0 118725 0 0 0
COREA DEL SUR 0 0 0 0 231.2 0 0 0 0 0 0 0 0 0 0 0 0
COSTA RICA 0 0 0 0 2.51694e+06 0 0 0 0 595022 0 0 17022 0 0 0 0
Canadá 0 0 0 0 0 0 0 0 0 0 11320.3 0 0 22257.6 0 0 0
Chile 0 0 0 0 0 0 0 0 0 0 0 175952 0 0 0 0 0
China 0 0 0 0 0 0 0 0 0 0 0 49415 0 0 0 0 0
Colombia 0 0 0 0 10632.4 0 0 0 0 0 0 0 0 0 0 0 0
Costa Rica 0 0 0 0 304 0 0 0 0 0 0 0 0 0 0 0 0
ECUADOR 0 0 0 0 11121.1 0 0 0 0 0 0 0 0 0 0 0 0
EL SALVADOR 0 0 0 0 3380.89 0 0 0 0 3.15808e+06 0 0 1.75932e+07 0 0 19318.5 0
EMIRATOS ÁRABES UNIDOS 0 0 0 0 0 0 0 0 0 40834.8 15141.7 0 93246 0 0 0 0
ESPAÑA 0 0 0 0 31056.8 0 0 0 0 8929.65 0 0 0 71187.6 0 0 0
ESTADOS UNIDOS 0 0 0 0 6.74779e+06 781.92 0 0 0 452500 4.97125e+06 2.97986e+08 62815.5 3.63083e+07 0 0 0
ESTONIA 0 0 0 0 268577 0 0 0 0 0 0 2.37419e+06 0 618034 0 0 0
El Salvador 0 0 0 0 0 0 0 0 0 50653.3 0 0 159023 0 0 0 0
Estados Unidos 0 36.04 0 0 87632.5 0 0 0 0 0 177068 3.87267e+06 0 922944 0 0 0
Estonia 0 0 0 0 0 0 0 0 0 0 0 0 0 19145.3 0 0 0
FILIPINAS 0 0 0 0 1536 0 0 0 0 0 0 0 0 0 0 0 0
FRANCIA 0 0 0 0 121993 0 0 0 0 0 627655 0 0 1.29225e+06 0 0 0
GHANA 0 0 0 0 0 0 0 0 0 0 0 0 0 105007 0 0 0
GUATEMALA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95511
HOLANDA 0 0 0 0 6.99672e+06 0 0 0 0 5560 0 0 0 737879 3200 0 0
HONDURAS 1.04949e+06 0 1.11446e+06 1.89727e+06 18000 0 0 0 0 78172.1 0 0 0 0 0 0 0
HUNGRÍA 31815.6 0 0 45528.7 0 0 0 0 0 0 0 0 0 0 0 0 0
Honduras 70359.8 0 0 40300 0 0 0 0 0 0 0 0 0 0 0 0 0
INDIA 0 0 0 0 4650 0 0 0 0 0 0 789181 0 233004 0 0 0
ISRAEL 0 0 0 0 607326 0 0 0 0 0 0 0 0 0 0 0 0
ITALIA 0 0 0 0 24330.3 0 0 0 0 0 0 0 0 0 0 0 0
Israel 0 0 0 0 15891.7 0 0 0 0 0 0 0 0 0 0 0 0
JAPÓN 0 0 0 0 5499.54 0 0 0 0 0 0 43739.8 0 0 0 0 0
KENIA 0 0 0 0 10197.1 0 0 0 0 0 0 0 0 0 0 0 0
LAOS 0 0 0 0 0 0 0 0 0 0 8688.74 0 0 0 0 0 0
LATVIA 0 0 0 0 0 0 0 0 0 0 8693.31 0 0 54261.1 0 0 0
LETONIA 0 0 0 0 0 0 0 0 0 0 0 0 0 15052 0 0 0
LITUANIA 0 0 0 0 0 0 0 0 0 0 0 0 0 149491 0 0 0
MEXICO 0 0 0 0 33359.8 0 0 166788 0 0 0 675200 0 97502.1 2.49166e+07 0 0
MÓNACO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 303410 0 0
México 0 0 0 0 0 0 0 1600 0 0 0 0 0 0 1.0659e+06 0 0
NAMIBIA 0 0 0 0 0 0 0 0 0 1940 0 0 0 0 0 0 0
NICARAGUA 0 0 0 0 1924.52 0 113631 0 0 4.06068e+06 0 0 547838 0 0 0 0
NIGERIA 0 0 0 0 0 0 0 0 0 130254 27383.8 0 19189.1 0 0 0 0
NUEVA ZELANDA 0 0 0 0 0 0 0 0 0 0 0 240022 0 47682 0 0 0
Nicaragua 0 0 0 0 0 0 12091 0 0 122190 0 0 28500.5 0 0 0 0
PANAMÁ 0 0 0 0 1957.53 0 0 0 0 0 0 0 20556 0 0 0 0
PERÚ 0 0 0 0 95392.9 0 0 0 0 0 0 341276 0 47076.6 0 0 0
POLONIA 0 0 0 0 6366.9 0 0 0 0 0 0 0 0 0 0 0 0
PORTUGAL 0 0 0 0 667.32 0 0 0 0 0 0 0 0 0 0 0 0
Países Bajos 0 0 0 0 6890.24 0 0 0 0 0 0 0 0 586587 0 0 0
Perú 0 0 0 0 2428 0 0 0 0 0 0 0 0 0 0 0 0
REINO UNIDO 0 0 0 0 3112.17 0 0 0 0 0 0 0 0 0 0 0 0
REPÚBLICA DOMINICANA 0 0 0 0 0 0 0 0 0 0 0 0 0 734869 0 0 0
SRI LANKA 0 0 0 0 0 0 0 0 0 0 0 711009 0 665303 0 0 0
SUDÁN 0 0 0 0 0 0 0 0 0 0 0 36826.8 0 0 0 0 0
SUECIA 0 0 0 0 0 0 0 0 0 0 0 1.82749e+06 0 0 0 0 0
TAILANDIA 0 0 0 0 133412 0 0 0 0 0 0 28765 0 0 0 0 0
TAIWAN 0 0 0 0 331696 0 0 0 0 0 0 0 0 0 0 0 0
TANZANIA 0 0 0 0 0 0 0 0 0 0 0 330340 0 0 0 0 0
URUGUAY 0 0 0 0 0 0 0 0 0 0 0 0 0 1.4859e+06 0 0 0
UZBEKISTÁN 0 0 0 0 0 0 0 0 0 0 0 0 0 106000 0 0 0
Uruguay 0 0 0 0 0 0 0 0 0 0 0 0 0 59007.8 0 0 0
VENEZUELA 0 0 0 0 0 0 0 0 0 0 0 1.38812e+07 0 1.1856e+06 0 0 0
VIETNAM 0 0 0 0 0 0 0 0 0 0 0 420550 0 0 0 0 0
YEMEN 0 0 0 0 0 0 0 0 0 0 0 167528 0 0 0 0 0

Que tal si queremos obtener el precio por kilogramo de cada producto y en base a eso obtener los productos mas ‘preciosos’.

In [35]:
maga_fitosanitario.to_csv("MAGA - CERTIFICADOS FITOSANITARIOS - LIMPIO.csv")

Datos. ¿Qué tienen que ver con los Objetivos de Desarrollo Sostenible?

- el julio 19, 2017 en Experiencias, Guest posts, Uncategorized

Sustainable Development Goal #1: No Poverty

Este texto es una colaboración de Fredy Rodríguez, coordinador del Área de Datos del Think Thank para Latinoamérica y Caribe CEPEI.

En 2015, 193 líderes mundiales se comprometieron ante las Naciones Unidas con la Agenda 2030 sobre el Desarrollo Sostenible, la cual está compuesta por diecisiete (17) Objetivos Globales y 169 metas para lograr tres cosas: erradicar la pobreza extrema, combatir la desigualdad y la injusticia, y encontrar soluciones al cambio climático en 15 años, de los cuales ya han transcurrido año y medio.

 

No tenemos un plan b para resolver los problemas del mundo, ya que no tenemos un planeta b

 – Ban ki-moon-

 

El escenario de la Agenda 2030 presenta como consenso que los Objetivos de Desarrollo Sostenible (ODS) requieren un esquema robusto de generación y análisis de información pública y privada, tanto a nivel nacional como subnacional. Esto implica contar con información de calidad, con mayor nivel de desagregación de los datos y con una cobertura más amplia, que sirva tanto para la medición del progreso como para la toma de decisiones basadas en evidencia.

 

Es por esto que le fue delegado a la Comisión Estadística de Naciones Unidas –el cuerpo de más alto nivel en el Sistema Estadístico Global que reúne a los diferentes directivos de las Oficinas Nacionales de Estadística– la responsabilidad de formular el marco de indicadores globales para los objetivos y metas de la Agenda 2030.

 

Para lograr lo anterior, se creó el Grupo Interagencial y de Expertos sobre Indicadores ODS (IAEG-SDG por sus siglas en inglés) que forman Brasil, Colombia y México, representando a América Central y Sudamérica. A junio de 2017, el grupo tiene definido un esquema de 230 indicadores que se están poniendo a prueba para revisar la viabilidad y pertinencia de su medición.

 

Dada la importancia de la información para los ODS, asociada al logro de una unión de esfuerzos, se crea la Alianza Global de Datos para el Desarrollo Sostenible (GPSDD por sus siglas en inglés), con el fin de facilitar espacios de discusión entre sociedad civil, academia, sector privado, gobiernos, filantropía, organismos multilaterales, etc., promoviendo la llamada revolución de los datos, que no es otra cosa que usar nuevas fuentes de datos y mejorar la calidad y apertura de los datos en torno al desarrollo sostenible. Por su parte, la Conferencia Estadística de las Américas de la Comisión Económica para América Latina y el Caribe le dio prioridad a los ODS, ya que por primera vez se elaboró una declaración denominada “Declaración de La Mitad del Mundo”, en la que se incluyó como primer punto del documento lo siguiente:

 

“Reafirmamos nuestro compromiso con la generación de estadísticas de calidad, que sirvan para el seguimiento de las agendas nacionales de la Agenda 2030 para el Desarrollo Sostenible”[1]

 

 

En el contexto latinoamericano, existen algunas acciones planteadas por países como Colombia, Costa Rica y México, que son lideradas principalmente por las Oficinas Nacionales de Estadística para la creación de la hoja de ruta para la medición de los ODS.

 

La primera de ellas es el diagnóstico de disponibilidad de información, que toma como referencia los Planes Estadísticos Nacionales (PEN) para realizar un análisis de oferta y demanda de la información existente. De esto se obtiene la línea base de la información para los ODS, estado de calidad de los datos y factibilidad de producir nueva información o usar fuentes no tradicionales[2] de datos en los casos de que existan brechas para medir los Objetivos Globales en todo el territorio nacional.

 

En la otra cara de la moneda, existen países de nuestra región sin inicar el proceso para la implementación de los ODS y mucho menos el de identificación de necesidades de información para su medición: es un gran reto la apropiación del tema y la gestión de recursos para la implementación de esta agenda.

 

En el uso de fuentes no tradicionales de datos está el uso del Big Data, ya que un número considerable de instituciones prefieren los datos del sector privado, los cuales, aunque no tienen un gran rigor técnico como los que podrían tener las oficinas estadísticas nacionales, resultan más actualizados y permiten tomar decisiones rápidas. No obstante, existen teorías que critican estas fuentes al considerar que no tienen una calidad suficiente para tomar decisiones. Por ejemplo: el uso de datos de telecomunicaciones tiene una gran volumen de información valiosa, pero es posible que las personas de países de renta baja que no tienen acceso a telefonía móvil no estén en las mediciones y, por tanto, quedan fuera del radar de las políticas públicas.

 

El principio esencial de los ODS es “no dejar a nadie atrás”. Para esto se requieren datos desagregados y de calidad que incluyan a todos los aspectos de la agenda 2030

 

 

Los trabajos avanzados por el gobierno permiten identificar retos que deben ser enfrentados más allá de la definición última de los indicadores, desafíos que hacen referencia a la capacidad de contar con los datos necesarios para su medición y la necesidad de coordinar esfuerzos interinstitucionales para establecer responsabilidades en la recolección, procesamiento, análisis y difusión de la información. Sin embargo, la participación de organizaciones diferentes a gobierno, especialmente las que cuentan con fuentes no tradicionales de financiamiento, no se ha incluido en las discusiones y tampoco se les han asignados roles específicos para que empiecen a entregar sus datos.

 

Otro de los mayores retos es el de las políticas de datos abiertos, que son insuficientes para identificar los actores del ecosistema de datos para el desarrollos sostenible. De acuerdo con el mapeo de datos www.datarepublica.org realizado en tres paìses (Colombia, Costa Rica y México), los principales datos que se pueden acceder libremente a través de la Web son los difundidos por organizaciones de gobierno.  En contraste, el sector privado es aquel con menor cantidad de datos publicados, lo cual invita a la reflexión sobre las políticas de datos abiertos en el sentido de que deben ser masificadas a todos los sectores, teniendo en cuenta que los ODS son una responsabilidad colectiva por los impactos y efectos que cada sector realiza en las temáticas de estos ambiciosos objetivos.

 

Para finalizar, se concluye que las dificultades en materia de medición y obtención de datos están asociadas al logro de una implementación con enfoque multisectorial, es decir, que involucre a todos los actores, desde el ciudadano de pie hasta el gobierno. Dada la naturaleza multidimensional de este proceso, es necesario dedicar atención a la gestión de información de calidad por parte de todos los actores, especialmente en los países que requieren un apoyo especial para producir su información básica y que con esta agenda requieren un mayor esfuerzo económico para cubrir las demandas de información.

 

Por lo tanto, el sector privado, el gobierno, y los demás actores deben convertirse en aliados que brinden y gestionen la consecución de datos para el desarrollo sostenible, sirviendo como un bien público que mejora la vida de todos.

[1] Resolución de la Reunión de la Conferencia Estadística de las Américas de la Comisión Económica para América Latina, 2015.

[2] Las fuentes no tradicionales son las que se generan a través de big data, imágenes, etc, que no hacen parte de las fuentes tradicionales que son las encuestas y censos.

http://es.schoolofdata.org/files/2017/07/Screen-Shot-2017-07-18-at-4.58.38-PM.png

Relevancia de datos abiertos: del discurso al impacto

- el mayo 29, 2017 en DAL, Experiencias, Fuentes de datos, Guest posts

Chasm

CC by SA Monyo Kararan

Hay todavía un abismo entre el discurso de datos abiertos y el impacto que esta apertura, publicación, vinculación y otras prácticas tienen en la vida de las poblaciones globales. El puente entre los extremos de ese abismo es la relevancia de los datos, es decir, la capacidad que estos tienen para ser aprovechados efectivamente por las diversas poblaciones globales. Este abismo parece especialmente insondable para poblaciones que son política y socialmente excluidas.

La vinculación de los dos extremos de ese hueco es cada vez de una necesidad mayor, toda vez que organismos, oficiales y autónomos globales, han adoptado en mayor o menor medida dicho discurso de apertura de datos.

Es necesario en este punto, a la vez que admitir los avances, prestar atención a las muchas deficiencias en políticas de apertura en regiones específicas, reconocer que la apertura no es un fin en sí mismo, y que resulta trivial si no viene aparejada de garantías de acceso y uso de los conjuntos de datos. Más aún, resulta indispensable establecer mecanismos concretos y específicos para corregir esta deficiencia.

Para ello deben desarrollarse estándares contextuales, técnicos y de evaluación,  con miras a la inclusión de amplias poblaciones que se beneficien del impacto de las políticas de apertura de datos.

El eje técnico

Dear W3C

CC by NC SA Paul Downey

En un sentido técnico, la relevancia de datos es una métrica de calidad de datos que vincula los sets de datos disponibles con el interés de actores sociales. En este mismo sentido, parte del abismo entre apertura e impacto es irónicamente un vacío de (meta)datos: aquellos que se refieren a las potencialidades de “consumo” de dichos conjuntos de datos.

En una publicación sobre prácticas recomendables para la publicación de datos en la web,  el World Wide Web Consortium (W3C) detalla una serie de criterios para que los conjuntos de datos sean vinculables y aprovechables en máximo grado. Entre estas prácticas, se encuentra el uso de un Vocabulario para el Uso de Conjuntos de datos (DUV, por sus siglas en inglés), para proveer un modo de retroalimentación entre “consumidores” y “publicadores” de datos sobre el uso de los mismos. Por ejemplo, agregando metadatos descriptivos a los conjuntos de datos, tanto sobre la base en sí misma, como de sus posibles usos. De esta manera, se generan metadatos que permiten contrastar el uso sugerido y el reuso dado.

Estas nuevas prácticas se adscriben a los principios FAIR y concuerdan con el espíritu de distribución y acceso universal que originalmente concibió internet.

Phil Archer, una de las diecinueve personas que redactó las recomendaciones, describe el propósito del documento de la siguiente manera:

“Quiero una revolución. No una revolución política, ni ciertamente una revolución violenta, pero una revolución a fin de cuentas. Una revolución de la manera en la que las personas piensan sobre compartir datos en la red”.

El eje contextual

Ayot2inapa

CC by SA Marcos Ge

Para implementar relevancia hace falta una revolución que sí es de índole política: el reconocimiento de necesidades prioritarias en la publicación de conjuntos de datos, con respecto a necesidades de todos los grupos poblacionales, pero con especial atención a datos sobre garantías individuales que son sistemáticamente violentadas por gobiernos y otros actores sociales en distintas latitudes globales.

Por ejemplo, en el contexto mexicano, la Corte Interamericana de Derechos Humanos (CIDH) detalla en uno de sus informes más recientes no sólo algunas de las violaciones sistemáticas de Derechos Humanos: desaparición, desaparición forzada, tortura, ejecuciones extrajudiciales, injusticia; sino también las poblaciones más vulneradas por estas violaciones: mujeres, pueblos indígenas, niñas, niños, adolescentes, defensoras de derechos humanos, personas migrantes, personas lesbianas, gay, bisexuales, trans y otras formas de disentimiento sexual.

En países en que se viven estas condiciones, es indispensable que este contexto de Derechos Humanos sea considerado como un factor determinante para la elaboración de políticas de apertura de datos relevantes. Aparejada a estas políticas, sólo la instrumentación de reglamentaciones y mecanismos concretos de análisis de la demanda de datos puede proveer a estas poblaciones de elementos para su defensa, que convengan efectivamente en la mejora de sus vidas.

Un paso más para asegurar la relevancia de los datos abiertos es la creación de mecanismos específicos que garanticen que poblaciones política y económicamente excluidas tengan acceso a un volumen y calidad de datos suficientes que les permita trabajar para erradicar las prácticas mismas que han promovido su exclusión.

Es decir, debe existir una concordancia entre las políticas de apertura de datos y la agenda pública propuesta por un gobierno abierto para el empoderamiento de la población, agenda que ya de por sí debe incluir a las poblaciones mencionadas.

Para la elaboración de estándares de todo tipo sobre políticas de relevancia de datos deben ser llamadas a participar no solamente especialistas en defensa de derechos, legislaciones nacionales e internacionales y otras disciplinas, sino principalmente representantes de estas poblaciones vulneradas y despojadas de la vida o de factores que permitan una vida digna.

Hoy en día, la generación y publicación de datos con esta perspectiva se está llevando a cabo por organizaciones activistas. En México, por ejemplo, periodistas e investigadores independientes hicieron pública una base de datos sobre personas desaparecidas, y en Bolivia son activistas quienes construyen una base de datos sobre feminicidios; en España periodistas organizaron datos sobre la brecha de clase en el acceso a medicamentos; en Estados Unidos, un profesor universitario creó una base de variables relevantes para la comunidad LGBTTI; y desde el Reino Unido, el medio The Guardian creó una plataforma que muestra el número de personas de raza negra que mueren por causa de disparos de policías.

El eje de evaluación

Derivado del emparejamiento de los nuevos estándares técnicos propuestos por la W3C con las prioridades humanitarias globales, las poblaciones tendrían herramientas para exigir no sólo la calidad de los datos en los términos tradicionales de formatos de apertura, sino también en cuanto a su relevancia.

Por ejemplo, la encuesta global Open Data Survey, de la que proviene el Open Data Index de la organización Open Knowledge International, contiene algunas preguntas sobre la accesibilidad legal y técnica de los conjuntos de datos como una medida de su calidad. El Open Data Barometer, por otra parte, tiene un apartado de impacto social de la apertura de datos. Este año destaca, entre otras cosas, que el impacto en transparencia y rendición de cuentas disminuyó un 22%, mientras que el impacto en emprendimientos se incrementó 15%, lo cual ilustra que ciertos grupos sociales se están beneficiando de la apertura más que otros.

El aprovechamiento de la información es clave para que los conjuntos de datos puedan ser relevantes, no hay relevancia sin aprovechamiento y no hay aprovechamiento sin acceso a la información. En el caso ilustrado por el Open Data Barometer, los conjuntos de datos son relevantes solamente para emprendedores, lo cual implica que no necesariamente son relevantes para cualquier otro grupo poblacional.

No obstante, se necesitan más detalles para la evaluación de la relevancia de los datos a nivel nacional y local. En 2015, el investigador Juan Ortiz Freuler publicó el Estado de la Oferta y la Demanda de Datos Abiertos Gubernamentales tras la implementación de normativas de la defenestrada Alianza por el Gobierno Abierto en México, (de la cual las organizaciones de ese país decidieron salir, precisamente, debido a la evidencia de espionaje en contra de defensores de la salud y otros activistas con software de uso exclusivo gubernamental).

El informe de Freuler mostró, entre otros análisis, que la mayoría de las solicitudes de información (emparentadas con la demanda de datos abiertos) fueron realizadas por personas con grado académico de licenciatura, lo cual implica una profunda brecha de acceso a ellos respecto de poblaciones no profesionalizadas.

En su Uso y Cumplimiento de la Legislación de Acceso a la Información Pública en Brasil, Chile y México , los investigadores Silvana Fumega y Marcos Mendiburu ofrecen también algunos ejemplos de las ventajas de obtener datos sobre la demanda de información pública.

Por ejemplo, en la investigación de Fumega y Mendiburu se detalla que México incorpora dentro de la Ley General de Transparencia y Acceso a la Información Pública (LGTAIP) la obligación del organismo garante de recopilar datos sobre las solicitudes de información pública.

Con esta obligación, tanto el Estado como actores independientes pueden llegar a la conclusión de que en 2013 los institutos de seguridad social nacionales en México y Brasil  y el ministerio de salud en Chile fueron las instancias públicas que más  solicitudes de información recibieron. A partir de esa información es posible tomar medidas para jerarquizar la información de dicha instancia de salud pública.

Simultáneamente, los datos estadísticos sobre las personas que hacen las solicitudes, como su edad, género o escolaridad, abonan a la necesidad de delinear con datos también las políticas públicas de datos abiertos.

Así, la estandarización técnica de ciertas prácticas permitiría obtener y cruzar datos sobre el uso y propósito de los mismos; la priorización contextual permitirá garantizar que poblaciones excluidas y en riesgo puedan beneficiarse tanto como el resto de los grupos sociales; y la evaluación permitirá monitorear el resultado de las prácticas mencionadas. 

En la publicación de las recomendaciones a las que antes aludí, sobre publicación de datos en internet, la W3C proponía generar a través de ellas una revolución exclusivamente tecnológica. No obstante, su articulación con estas otras formulaciones podría provocar una muy necesaria revolución que sí pertenece al orden de lo político: el empoderamiento de las comunidades a través del uso de conjuntos de datos.

Combinando bases de datos con Tableau Public de manera automática

- el octubre 24, 2016 en Tutoriales

En ocasiones, tenemos dos o más bases de datos que queremos combinar por un factor común. El uso de datos es más efectivo cuando puedes combinar varias bases de datos y ver cómo se relacionan entre ellas. Tableau Public es un programa que nos permite hacer esto de manera sencilla. En este tutorial veremos cómo hacerlo.

Al combinar datos de manera automática te ahorras el tedioso trabajo de tener que emparejar de manera manual dos o varios set de datos.

Al combinar datos de manera automática te ahorras el tedioso trabajo de tener que emparejar de manera manual dos o varios set de datos.

 

  • Instala el programa

 

Este programa gratuito te permite importar tus datos para crear visualizaciones interactivas. Todo tu trabajo se guarda en tu usuario y se puede compartir a través de códigos embed o iframes. Otra ventaja es que el programa está disponible para los sistemas operativos Windows y Mac. Para descargar la aplicación, entra en este link y sigue las instrucciones que el instalador te señala.

2) Asegúrate de que tus datos compartan un denominador común

Cuando quieres unir bases de datos debes asegurarte de que ambas compartan algún campo que vincule los dos sets de datos. Por ejemplo, si tienes dos set de datos sobre los países de Latinoamérica, tu denominador común puede ser el nombre del país. O si tienes datos sobre denuncias y delitos de los partidos políticos, el denominador común puede ser el nombre o las siglas del partido.

3) Repasa la teoría de los conjuntos

Tableau Public te permite realizar dos tipos de combinaciones.

La primera, es una unión interior.

image00

 

 

 

 

En este tipo de unión, sólo se copiaran los datos en los que el denominador común de ambas fuentes de datos coincida. Por ejemplo, si tenemos un set de datos sobre alfabetización en  todos los países del mundo y lo combinamos con datos sobre el acceso a la educación primaria en los países de Latinoamérica, nuestra base de datos combinada solo mostrará los datos de los países de Latinoamérica.

La segunda, es una unión izquierda.

image01

 

 

 

 

En este tipo de unión, se copiarán todos los datos de tu primera fuente de datos y sólo se agregarán los datos de la segunda fuente cuando estos coincidan en denominador común. Las filas que no tengan coincidencias se mostrarán como valores nulos. Siguiendo nuestro ejemplo, nuestra base de datos combinada mostraría los datos de alfabetización de todos los países del mundo, pero aquellos que no forman parte de Latinoamérica no contarían con datos sobre el acceso a educación primaria.

4) Abre el programa y conecta tu primera fuente de datos

Al iniciar, el programa te invita a conectar a un archivo de base de datos, que puede ser en formatos Excel (xls, xlsx), Archivos de texto (csv) o Access. Selecciona tu primer set de datos. En nuestro ejemplo, sería el archivo con el porcentaje de alfabetización de todos los países del mundo.

image03

 

 

 

 

5) Añade tu segunda fuente de datos

Haz click en la palabra añadir y agrega una segunda base de datos. En nuestro ejemplo, es el archivo con el porcentaje de acceso a la educación primaria en los países latinoamericanos.

image05

 

 

 

 

6) Arrastra ambos sets de datos y conéctalos

Al arrastrar las diferentes hojas de cálculo a la pantalla de Tableau Public, el programa te mostrará la relación que estás creando entre ambas bases de datos y te dará una muestra de cómo luce tu conexión de datos.

image06

 

 

 

 

7) Edita la conexión

Haz click en los dos círculos unidos que se muestran entre tus fuentes de datos para abrir una ventana de edición de tu unión. En esta pestaña debes de decidir si quieres una combinación interior o una combinación izquierda. También debes de indicar cuál es la categoría en tus fuentes de datos que coincide o es igual en ambas. En este caso, seleccionamos el campo Country (País) para que combine los datos de cada país de manera automática.

image04

 

 

 

 

Siguiendo el ejemplo, si decides hacer una conexión interior, la combinación de estas dos bases de datos sólo te mostraria 42 filas con los datos de alfabetización y acceso a educación primaria de los 42 países de Latinoamérica y el Caribe.

En cambio, si eliges una conexión izquierda, el set de datos resultante te mostraría 254 filas con los nombres de todos los países del mundo y sus datos sobre alfabetización, pero los datos sobre acceso a educación primaria solo estarían en los países latinoamericanos. El resto de países tendría un valor nulo en esta categoría.

Durante todo el proceso, Tableau Public te muestra una previsualización de cómo se ve tu set de datos combinado debajo de la sección en la que editas las uniones.

8) Copiar y guardar.

Selecciona todas las filas y columnas de tu base de datos combinada haciendo click en la esquina superior izquierda de la previsualización que te muestra el programa. Copia el contenido con la combinación Ctrl+C o ⌘+C,  pégalo en el editor de hojas de cálculo de tu preferencia y guárdalo.

Así, de manera sencilla, puedes combinar bases de datos con muchos campos y sin tener que prestar atención y copiar manualmente las coincidencias. Esta práctica es de mucha utilidad cuando quieres combinar diferentes estadísticas sobre varios lugares, o cuando quieres combinar una base de datos con datos georeferenciales con una que contenga estadísticas.

La combinación izquierda te puede servir para identificar valores que coincidan entre dos bases de datos. Esto es de mucha utilidad cuando estás creando hipótesis para investigaciones o quieres comprobar relaciones entre listados de personas o entidades.

Cómo DataBasic puede ayudarte a empezar tu storytelling

- el julio 19, 2016 en Experiencias, Fuentes de datos

Aprender a trabajar con datos y utilizar las herramientas correctas tienen una curva de aprendizaje, como todo proceso, que a veces puede intimidar un poco al inicio. Lo se por experiencia propia.

En el afán de aprender y despejar las dudas que surgen en el análisis de datos, muchas veces aceleramos la carrera tratando de comprender de inmediato herramientas complejas, no siempre es el mejor camino. Por ello es necesario revisar herramientas pensadas para quienes está empezando con datos abiertos en el entendido de que progresivamente se adquiera mayor destreza en el análisis de datos.

DataBasic IO es una suite de herramientas intuitivas y fáciles de usar pensada para personas curiosas por analizar datos y contar historias, que todavía no están interiorizadas en los conceptos, tareas específicas o sencillamente no saben por dónde comenzar. En pocas palabras, simplifican el primer acercamiento a partir de tres herramientas que dan como resultado análisis prácticos de tus datos.

Aquí te cuento, una a una, qué pueden hacer estas herramientas a través de ejemplos con los que te puedes encontrar en el día a día.

DataBasic1

Word Counter, la primera de la lista, hace un análisis cuantitativos de un texto plano y te muestra las palabras y frases más comunes, este último más interesante todavía porque te pone en contexto de las palabras más usadas a través de bigramas y trigramas.

Si lo deseas puedes usar los ejemplos de la herramienta (son letras de canciones), pegar un enlace o un texto, o subir un documento: yo me decidí por esta última y trabajé con el discurso del Presidente de Bolivia del pasado 1° de mayo de 2016; la herramienta sólo se acepta archivos txt, docx, rtf. El resultado se muestra en dos grupos, el primero es una nube de palabras:

DataBasic2

Seguido de bigramas, trigramas y palabras encontradas con mayor frecuencia; estas listas se pueden descargar como un archivo CSV.

DataBasic3

De esta última imagen puedes ver, por ejemplo, que la palabra “compañeros” se repite 25 veces, y la palabra “compañeras” solamente 14; también que la frase “millones de bolivianos” aparece 13 veces, y aunque no sale en la imagen, se repite 4 veces el nombre “Hernan Siles Suazo”, ex presidente de Bolivia (1982) en cuyo mandato logró preservar la democracia luego de 18 años de sucesivos gobiernos militares y golpes de estado.

Si no te interesan los discursos presidenciales, también podrías utilizar textos planos sobre propuestas de candidatos, planes de gobierno, etc. WordCounter te ayuda a entender que se pueden encontrar muchas historias en un solo conjunto de datos.

WTF csv, un nombre cuya pregunta nos hemos hecho todos alguna vez. Esta herramienta te da una visión general de lo que está en tu archivo .csv y te ayuda a pasar rápidamente a preguntarle cosas a tus hojas de cálculo en un conjunto de datos o a partir de la combinación de varios conjuntos de datos.

Nuevamente cuentas con ejemplos propios de la herramienta, como la lista de pasajeros del Titanic; yo decidí utilizar el .csv de “Que no te la charlen”, un proyecto de transparencia universitaria con datos de las universidades y carreras públicas de Bolivia.

La herramienta te muestra la información en bloques giratorios, de un lado la información puesta de forma visual, y del otro como resumen en texto. Cada bloque representa una columna y contiene un resumen de la información en las filas de esa columna.

DataBasic 3

Viendo los contenidos empiezas a hacerte preguntas desde cada bloque, como: “¿por qué la Universidad Autónoma Gabriel Rene Moreno se repite 91 veces?”; o combinando bloques, como abajo, “¿Por qué si “Universidad Mayor de San Simón” -Cochabamba- se repite 89 veces, aparecen “Cochabamba” 74 veces mencionada en la columna Ciudad/Región?

Puedes complementar tu análisis con datos de apoyo que te ayuden a entender mejor el contexto de la información, como los del Censo de Población y Vivienda; o repetir el ejercicio usando otros .csv por ejemplo si quieres revisar presupuestos públicos para identificar el ítem que genera más gasto y a su vez comparar estos datos con presupuestos de la misma institución pero de otras ciudades.
Same Diff, la última de esta suite, compara dos documentos de texto y encuentra similaridades y diferencias en las palabras basadas en un algoritmo de similitud coseno que indica cuán parecidos son dos documentos.

No considera las sílabas con acentos ni apóstrofes, por lo que algunas de las palabras analizadas se ven cortadas; decidí probar la herramienta comparando las leyes de Identidad de Género de Bolivia y de Argentina, este fue el resultado:

DataBasic5

La columna de la izquierda muestra palabras únicas de la Ley de Identidad de Género de Argentina (pila, articulo, registral, documento, integral), en tanto que la columna de la derecha muestra el resultado para la ley boliviana (dato, propio, sereci, estado, transexuales); los resultados de la columna central, por otra parte indican las palabras encontradas en ambos documentos: identidad, nombre, sexo, género, ley, cambio.

La herramienta es interesante para encontrar temas comunes en el caso de documentos diferentes, o los elementos diferenciadores en documentos muy similares, como en el ejemplo de arriba en que la legislación de Bolivia se enfoca en instituciones (SERECI) y el estado.

 Un plus general de DataBasic IO es que las herramientas se probaron en aulas y talleres para asegurar de que funcionen correctamente y que sean fácilmente comprensibles; también desarrollaron guías de actividades para cada herramienta, pensadas para replicar con estudiantes, periodistas, etc., y que combinan datos ligeros, como letras de canciones o avistamientos de OVNIS, para facilitar el abordaje de la búsqueda de historias de datos de manera más entretenida y simple.

Nuevas Dateras Latam

- el junio 1, 2016 en Uncategorized

En estas semanas estaremos publicando cuatro perfiles de dateras latinoamericanas que con su capacidad en análisis de datos y visión de alto impacto social están inyectando frescura a lo que conocemos como periodismo de datos en la región.

 

fotoTM

Cómo saber si tus ideas son correctas: Tania Montalvo, México

 

 

 

19242158KatherinePennacchio

Venezuela. Katherine Pennacchio: Rebeldía colaborativa

Análisis de datos con Morlan: puentes entre ciencia y sociedad.

- el marzo 15, 2016 en Estadística, Experiencias, Fuentes de datos, Noticias, Uncategorized

Irving 2 copiaCon la paciencia de un físico nuclear y el interés apasionado de un activista, Irving Morales, co fundador de Morlan, grafica una de potenciales decenas de tendencias en una base de datos.

En la redacción con la que está colaborando casi le piden que la envíe a impresión, “está lista” para publicarse, cuenta Irving en entrevista. Pero se niega, la gráfica es para él, para que detecte patrones anómalos y posibles puntos de atención en el comportamiento de los datos. La prisa, que domina la mayoría de las redacciones, es el mayor enemigo de un verdadero análisis de datos.

Un investigador, científico, periodista o incluso diseñador que grafique pensando ya en publicar comete uno de los mayores y más comunes errores en el análisis de datos. En eso insistió esta semana Marco Hernández, de La Nación Data Costa Rica durante su webinar de #DatosExtremos. La frecuencia con que la que este y otros errores ocurren puede deberse, como insiste su colega, la periodista Camila Salazar, a la falta de capacitación en análisis de datos en las universidades que forman periodistas.

Pero en un espejo de esta deficiencia en la ciencia, o al menos en la academia mexicana hiperespecializada en física, los científicos que analizan datos no tienen ni incentivos ni herramientas ni un camino hecho para poner sus análisis al servicio de organizaciones para la resolución de problemas sociales.

El doctor en física y consultor en análisis de datos Irving Morales confiesa, por ejempo, que comenzó su carrera de sesudos y clavados análisis de datos para finalmente publicarlos… en PDF.

Por eso Irving, en vista de que la academia científica no necesariamente está interesada en salir de su propio túnel de saber, decidió aliarse con Emmanuel Landa y Oliver Morales y hacer su propio camino de análisis científico y social de datos. Le llamaron Morlan.

Acá, en entrevista, detalla sus andanzas en ese camino.

¿Qué es y cómo se hace el análisis de datos?

Una manera de entenderlo es como una caja de herramientas que se aplica a todas mis bases de datos: saco el promedio, la varianza, gráficas de barras… Desde mi punto de vista eso no es lo mejor, se aplica el formulazo, sin entender por qué.

Creo que el análisis de datos debe ser un proceso artesanal donde lo que hago es buscar patrones en los datos. Algunos periodistas muchas veces están muy entrenados para buscar historias y eso es lo que hacen: agarran los datos, los grafican de mil maneras posibles y empiezan a buscar sus historias.

A veces se trata de sacar un patrón relevante para la nota. Otras el punto es notar cosas raras que hacen los datos (datos fuera del patrón usual), lo relevante es preguntarse por qué mis datos se comportan así.

Yo trabajé mucho tiempo con la física y analizando datos para la física. Buscar patrones tiene que ser un proceso que tiene una gran carga visual. En la academia no lo entienden, pero la parte visual te ayuda un montón.

Esencialmente lo puedes hacer en cualquier paquete que tenga un poco de matemática. Yo uso un paquete que se llama así, Matemática, aunque también se puede usar Stata, R, sps.

logo

¿Cómo decidiste empezar Morlan?

Empezamos a trabajar con otros datos, más académicos, de biología, por ejemplo, y poco a poco nos dimos cuenta de que estos no eran los datos que nos interesaban.

Nos preguntábamos porqué los científicos no atacan problemas que le interesen más a la gente, como la pobreza, el agua, el hambre.

Empezamos a bajar datos y ver cuáles eran las problemáticas en esas áreas. Con el tiempo notamos que sí podíamos hacer algunas cosas pero el camino académico no era lo mejor.

Físicos hablando de ciencias sociales no es algo que se vea bien en la academia.

¿Qué aprendizaje hubo en ese viaje de la ciencia pura y dura a lo publicable y lo social?

Al pincipio Morlan funcionó sólo como una empresa de consultoría. Nos empezamos a dar cuenta de que no sólo es importnate la parte de las matemáticas sino también la del diseño.

Presentar en PDF era algo que hacíamos y se nos volvió completamente aburrido. Como físicos también estábamos acostumbrados a ver los datos sólo como números, teníamos 3 años haciendo pura física.

Nos dimos cuenta de que necesitábamos también la parte del contenido social. Nos reunimos con gente que estaba más metida en esto: periodistas, sociólogos, gente que nos aterrizara y nos bajara a la parte social. Así fue surgiendo Morlan. La idea de estos tres ejes fue cómo construir un producto que no tenía nadie. Había gente que estaba haciendo consultoría pero la parte del diseño y del contexto la dejaban fuera.

Había gente que hacía productos muy buenos de periodismo de datos o visualización de datos pero que no tenía nada de buen análisis o contexto social. Gente que escribía ensayos pero no tenía nada de visualización o análisis matemático.

Decidimos reunir las tres cosas. y nos ha funcionando muy bien.

¿Qué tipo de trabajo desarrollan usualmente y cómo se sostiene Morlan?

Nos preguntan mucho quiénes son nuestros clientes. Recientemente hemos trabajado con medios, con Milenio Data Lab y con El Universal. Pero nuestra principal fuentes de ingresos tiene que ver con gente del gobierno y consultorías.

Por ejemplo, estuvimos muy metidos analizando las bases de datos de desaparecidos. Al principio salió simplemente como un tuit que pusimos y empezamos a hacer otros productos que tenían que ver con bases de datos de desaparecidos. Poco a poco lo empezamos a vender a gente de los medios y a partir de ahí surgió el proyecto de desaparecidos de El Universal. Empezó con jalar una base y ver qué se puede hacer.

Pero todavía nos movemos mucho más en el análisis de datos más fuerte y más pesado.

Screen Shot 2016-03-15 at 12.28.03 PMTrabajamos, por ejemplo, con el gobierno de Aguascalientes, el análisis de la redistritación electoral, que ahorita está vigente en Ags., es un problema de minimización de datos, que involucra matemáticas más especializadas. Hemos trabajado con algunos partidos políticos haciendo análisis sociodemográfico y electoral.

La mayoría de las cosas que vendemos, por lo mismo de que las vendimos, no las podemos poner en la página. Es trabajo con ONGs y decimos que analizar estos datos estaría bien y lo montamos.

En este tipo de trabajo nos acercamos a las ONGs por el contenido social que nos interesa promover. En algunos casos, como nuestro trabajo con el Instituto para las Mujeres en la Migración (IMUMI) el trato ha sido casi un intercambio de nuestro trabajo por publicidad, pues sabemos que algunas organizaciones no disponen de grandes fondos. No queremos que sean nuestros análisis solamente para sacar dinero sino la parte de analizar los datos de forma social y que esto sirva para algo más.

¿Cuáles son los errores más comunes en análisis de datos?

Depende mucho de a quién esté enfocado. En los medios hemos visto muchos errores en análisis de datos. También hemos visto cómo la dinámica de manejar los datos es muy diferente en un medio, donde quieren los datos más importantes para la siguiente semana.

Una consultoría funciona casi por completo al revés: nos dan un base y es necesario hacer casi toda la visualización posible, un trabajo de un mes.

Hemos encontrado que el principal error en la gente que hace análisis de datos es que se quedan muy en la superficie. La base de datos es muy rica y sacan nada más el dato más importante o nada más un análisis muy superficial.

¿Cuánto tiempo toma un análisis de datos más integral?

Usualmente, con la mayoría de las bases, las analizamos durante meses. Empezamos a jugar, graficamos de mil maneras diferentes y buscamos patrones de forma visual y matemática. Cada proceso implica un mes o mes y medio con cada base.

Como mencionaba en el curso de DatosExtremos. Conforme las acumulas, las conoces y ya después es posible generar cruces.

¿Cuál de sus proyectos ha tenido más impacto personal y social?

Yo creo que el analizar los datos de desaparecidos ha sido muy fuerte para nosotros. En algún momento empezamos a bajar bases de datos de desaparecidos y me puse a scrapear una base de datos donde tenían fichas y entonces abrí la carpeta y de repente se empezó a llenar con fotos. Ese momento fue muy impactante, un baño de realidad. Yo estaba pensando esto como números y ves cada una de las fotografías y empiezas a pensar que son personas.

Justo ayer lo platicaba con otros periodistas. Una vez que te metes al tema de los desaparecidos ya no puedes salirte, sientes cierta responsabilidad: si yo puedo hacer algo, tengo que hacer algo.

Pero también trabajamos mucho con nuestra base de datos de pobreza. Volvemos a ella una y otra vez y es la base de muchos de nuestros cruces para otros trabajos.

Estadística conveniente: absolutos vs proporciones

- el noviembre 19, 2014 en Estadística, Guest posts


periodico

Con este post quiero dar un ejemplo de cómo los datos pueden ser engañosos, y que pueden ser presentados de dos formas distintas para decir lo opuesto.

Ejemplo de la pobreza en México

Uno de los temas más importantes para la clase política mexicana es el discurso sobre la pobreza en el país. Un político que puede presumir de reducción de la pobreza en su mandato es considerado exitoso. Precisamente en este discurso político he encontrado algunas mañas utilizadas tanto por el gobierno como opositores para hablar del tema.

El asunto clave es que, dependiendo de cómo se presenta los datos, puede mostrarse con el mismo dataset aumento o disminución en la pobreza sin necesidad de mentir en ninguno de los casos… ¿Pero cómo puede ser esto posible?

¡Reducción de la pobreza!

El argumento a favor habla del porcentaje de pobreza en México: actualmente se encuentra en 45.5% y en 2010 era 46.1%. Es decir, ahora 45 de cada 100 mexicanos viven en pobreza;  antes eran 46. Parece una pequeña mejora, pero mejora al final de cuentas.

Aumenta la pobreza en México

Por otra parte, la estadística en contra habla de números absolutos. Es decir, la pobreza aumentó de 52.8 a 53.2 millones de mexicanos. Eso equivale a 500 mil mexicanos más en la pobreza, una situación lamentable.

Ambas premisas son verdad, pues se refieren al mismo hecho visto de maneras distinta. La razón para que ambas posturas sean verdaderas al mismo tiempo es que la población aumentó más que la pobreza entre 2010 y 2014.

¿Cómo se ve este tema en los medios? Les dejo el link donde pueden revisarlo:

www.elfinanciero.com.mx/archivo/aumento-en-500-000-personas-numero-de-pobres-en-mexico.html

¿Cómo pueden ser las dos cosas verdad?

Para aclarar las cosas pondré un ejemplo muy sencillo. Supongamos que estamos en un salón de clases de 20 personas, de las cuales la mitad reprobó matemáticas el primer año. Es decir, 10 personas, o 50% de los alumnos. El segundo año, el número de estudiantes aumenta a 30 personas. En esta ocasión, el número de reprobados es 13, o 43% de los alumnos.

En otras palabras, la proporción de alumnos reprobados disminuyó, pero el número total o absoluto de reprobados aumentó. Son dos caras de la misma moneda.

Si quisiéramos defender al profesor, nos enfocaríamos en que el número de reprobados cayó de 50% a 43%… Pero, si queremos atacar, hablaríamos de que el número de reprobados subió de 10 a 13. Una vez más, ambas afirmaciones son ciertas pero presentan una imagen completamente distinta.

Creo que este segundo post nos deja dos preguntas: cuando uses datos ¿qué enfoque escogerás? o mejor aún ¿cómo le harás para comunicar las dos caras de esta moneda?

La próxima semana nos vemos aquí para hablar de un mito genial: la correlación.

Datos y estadísticas, las verdades y las mentiras

- el noviembre 12, 2014 en Estadística, Guest posts


¡Saludos, daterxs de Latinoamérica! Christian se une a los y las blogueras de Escuela de Datos para compartirnos sus conocimientos sobre el corazón de los ejercicios dateros: el análisis. No hay visualización reveladora (o scrapeo útil) sin buen análisis, y Christian estará escribiendo acerca de este tema las próximas semanas. ¡Bienvenido a la familia, Christian!


Mark Twain

Con esta serie de publicaciones me gustaría contribuir al uso correcto de los datos y la estadística, sobre todo para nosotros los curiosos que buscamos datos para apoyar causas y posicionamientos.

Vivimos en un mundo rodeado de estadísticas y muchas de ellas no son ciertas. Una muy conocida cita que ilustra su desprestigio es la del ex primer ministro británico Benjamin Disraeli, popularizada por Mark Twain: “hay mentiras, grandes mentiras y estadísticas”.

Las estadísticas son muy valiosas si sabes cómo interpretarlas correctamente (y si lees la letra pequeña)… Pero también me gustaría ilustrar casos en los que se ha usado datos de manera muy particular para aparentar cosas no tan ciertas. En ocasiones, gente bien intencionada llega a conclusiones que, por falta de métodos correctos, no son del todo adecuadas.

Es importante saber concluir correctamente a partir de datos para no contribuir al mundo oscuro de las estadísticas falsas. Y, si no tienes planes de contribuir a ese mundo, al menos estos conocimientos serán de gran ayuda para que no te vean la cara.

En las siguientes semanas, estaré publicando una serie de posts sobre:

  • Métodos sencillos para llegar a conclusiones con datos.
  • Ejemplos de usos correctos e incorrectos de estadísticas.
  • Los vicios más comunes en el análisis de datos.
  • Lugares donde puedes conseguir los mejores datos.

Comenzamos la siguiente semana. Mientras tanto, un par de recursos para alimentar su interés:

    • Regla de oro: la correlación no implica que una de las variables analizadas tiene un efecto sobre otra… http://www.tylervigen.com/
    • Si quieres profundizar en el tema de las estadísticas y las mentiras, te recomiendo leer el libro How to Lie with Statistics publicado en 1954 por Darrell Huff.

JPD2014 – Data Viz Day con Oxfam Intermón

- el mayo 23, 2014 en Experiencias

Este post forma parte de la cobertura de las II Jornadas de Periodismo de Datos y Open Data (abril 2014), que concluyeron con un Data Viz Day en que se trabajó con Oxfam Intermón sobre la política de cooperación española.

Este post fue escrito a partir de una entrevista llevada a cabo con Saya Saulière, Técnica de Evaluación de Campañas en el proyecto “Más y Mejor Ayuda” en Oxfam Intermón. Le agradecemos todo el tiempo y disposición.

–––––––

En Oxfam Intermón, cada año se hace una evaluación de datos de la ayuda que da el Estado español: ¿Se invierte donde se debe? ¿Se usa la ayuda para fines políticos o geoestratégicos? Pero no quieren ser ellos los únicos que hacen este análisis; por eso, aprovechan cada oportunidad de trabajar con gente que no tiene aún sensibilidad para ese tema. Es así que aceptaron la invitación de Mar Cabra, periodista de investigación, para participar en Data Viz Day.

Y es que tiene perfecto sentido: Oxfam Intermón tiene datos y conocimiento sobre la política de cooperación. En las Jornadas, habría personas interesadas en el manejo de datos, pero no necesariamente en la cooperación. Data Viz Day les permitiría aprender del otro, y trabajar juntos.

Pero no se trata nada más de conseguir un espacio y café para que fluya la magia datera. Hay un proceso de preparación previa, y por eso les compartimos las ideas que Saya Saulière de Oxfam Intermón concluyó del proceso:

1) El mayor riesgo al realizar eventos de este tipo es terminar sin productos porque simplemente se acaba el tiempo antes de llegar a ellos. Según la cantidad de tiempo disponible, hay que preparar materiales de trabajo.

Las y los organizadores de las Jornadas le recomendaron a Oxfam llevar datos listos en Excel almacenados en un Dropbox que pudiera ser consultado fácilmente. Así no se perdería tiempo en la búsqueda y limpieza de los datos, que puede dejarse para talleres más largos.

IMG_08052014_165012

(Imagen de DaTactic)

2) Es necesario poner en contexto a las personas, pues, aunque ya sepan navegar bases de datos, el conocimiento que tiene tu organización puede ayudarles a comprender mejor las categorías.

Para esto, Oxfam dio una presentación inicial de 10 minutos para explicar los dos tipos de datos, e incluyó en el Dropbox un archivo con fuentes adicionales de información (y una explicación sobre cada una).

3) Es útil dar un punto de partida, en vez de esperar a que sea encontrado en el evento.

Oxfam propuso dos retos para este Data Viz Day: mostrar el impacto del recorte en dos países donde España era uno de los donantes principales (Guatemala y Mauritania), y romper con los mitos de la cooperación (como “no hay dinero para la cooperación”; “la gente pide que se deje de ayudar”; “cortamos ayuda internacional porque nos estamos enfocando en ayuda local”).

4) Estar a disposición, pero no imponer.

El Data Viz Day fue llevado a cabo en dos ciudades (Madrid y Barcelona), en las que había 30 personas respectivamente. Dos equipos de Oxfam Intermón, de tres personas cada uno, participaron en la jornada. Estaban formados por personas que conocían los datos sobre cooperación, y personas que tenían conocimientos técnicos sobre manejo de datos.

El punto era estar a disposición para resolver dudas sobre la marcha, pero jamás imponer hipótesis o caminos. Como dice Saya: “necesitamos una agenda abierta para aprovechar lo que sale de la inteligencia colectiva”.

5) Más allá de la experiencia pedagógica, dar incentivos.

Los organizadores de las Jornadas y Oxfam se pusieron de acuerdo para dar premios simbólicos que de hecho motivaron mucho a la gente ahí; canastas de comercio justo, cuentas pro de Infogr.am… Y el premio para los trabajos avanzados: publicación del producto en un periódico digital de renombre.

Screen Shot 2014-05-15 at 14.09.24

(Screenshot de El Diario)

Siguiendo estos tips, el evento fue un éxito. A Saya le sorprendió que se acogiera el tema con gusto e interés, y que se logró un gran nivel de análisis en todos los niveles (desde básico hasta avanzado).

¿Se logró el objetivo?

Para Saya, los y las participantes del Data Viz Day salieron con conciencia sobre un tema importante: la política de cooperación está siendo desmantelada en España, y nadie se está enterando. Aunque la ayuda no es perfecta, debe reflexionarse acerca de su recorte por el impacto impresionante que tiene en educación, salud, acceso a servicios de saneamiento, etcétera, en otros países.

Más allá de esta conciencia, hay periodistas que, a raíz de este evento, darán seguimiento al tema, e iniciarán investigaciones en una provincia. Por parte de Oxfam Intermón, el contacto sigue con los equipos para hacer algunos ajustes, pues estarán utilizando los materiales.

Finalmente, Saya comparte una razón por la cual recomienda a otras ONG involucrarse en jornadas similares: “Es importante estar en estos espacios para encontrar a gente interesada en mejorar las cosas, pero que no trabajan aún contigo porque no están en tu red. La ONG tiene mucho recorrido técnico; los periodistas pueden difundir. Son sinergias súper positivas”.

————————

¿Tu ONG o proyecto quiere involucrarse en procesos similares? ¡Cuéntanos la historia! Estamos en info [arroba] escueladedatos [punto] org. No olvides que la sección sobre Expediciones de datos te será de utilidad.