Una nueva forma de hacer periodismo está provocando que aúnen esfuerzos periodistas y científicos de datos.
Objetivo del periodismo de datos
El periodismo de datos perdigue acercar la información que se «esconde» en los datos, y hacerlo de forma comprensible para los ciudadanos.
Están proliferando los portales de datos abiertos (open data) donde administraciones públicas comparten datos. Estos datos están disponibles para todos, pero no siempre de forma ordenada, comprensible y casi nunca puestos en contexto.
Por esta razón, el periodismo de datos está creciendo al mismo ritmo que crece el Big Data.
¿Qué funciones desempeña el periodista de datos?
El periodista tiene que extraer una gran cantidad de datos de estos portales de datos abiertos, para convertirlos en información y llegar a hallazgos reveladores.
El periodista Paul Bradshaw establece un proceso que distingue cinco etapas:
- Extracción de datos. Mediante una técnica conocida como «Scraping», el periodista extrae los datos que puede encontrar en formato descargable o formato web. Cuando los datos son descargables en formato: Excel, Json, CSV, Python, etc. Tendrá que relacionar tablas y cuando están en formato web va a necesitar un script que haga webscraping para generar las tablas.
- Depuración y contexto. En todo proceso de investigación se deben limpiar los datos para evitar duplicidades, errores tipográficos, celdas vacías o tablas incompletas.
- Cruce y análisis. Los hallazgos reveladores surgen de la relación entre tablas que permite poner en contexto los datos. Utilizar una sola fuente de datos no suele aportar mucha información. Aporta muchos datos pero sin perspectiva que se traduce en poca información valiosa por si sola.
- Verificación. Cada vez más proliferan las noticias falsas por la red, y por esa razón, la credibilidad de la fuente tiene más sentido. Estamos aprendiendo a NO compartir noticias que no están verificadas por fuentes de información con autoridad y credibilidad. Solo un medio de comunicación acreditado nos garantiza la veracidad de la noticia.
- Presentación. Solo haciendo la información entendible tendrá sentido y utilidad. Por esa razón, la presentación cobra especial importancia. Una infografía, un gráfico o un mapa pueden resumir la información analizada y exponer los datos de forma visual.
Presentación de datos
Cuando acabamos el proceso llega el momento de compartir los datos contenidos en la presentación.
Es decir, llega el momento de dar forma al trabajo de investigación realizado. Tenemos una tabla de datos, podemos convertirla en gráfico y hay que integra ese gráfico en un artículo. Veamos como hacerlo de forma práctica y paso a paso.
Vamos a conectar un script hecho en python, con una hoja de cálculo de Google Sheet que será la base de un gráfico construido en Data Studio. Y este gráfico lo integraremos en esta publicación que ofrecerá información dinámica.
Post dinámicos en wordpress
Para poder hacer una tabla dinámica en Google Sheet debemos conectar python con GSheet y para hacerlo hay que crear un proyecto en Google Developers.
Acceder a su consola API de Google :
- Seleccionar proyecto. El desplegable junto al logo de Google abre una ventana emergente con la lista de proyectos que tengamos.
- Nuevo proyecto. En el margen superior derecho podemos pulsar sobre un botón «Nuevo Proyecto».
- Nombre del proyecto. Ahora ponemos nombre al proyecto y pulsamos crear.
4. Biblioteca API. En la barra lateral hay una opción «Biblioteca» que nos redirige al repositorio de aplicaciones de Google.
5. Habilitar API. Escribimos en el buscador de API «Google Sheet API» la seleccionamos y habilitamos.
6. Crear credenciales. Si pulsamos la opción de credenciales del menú en barra lateral izquierda, llegamos a una ventana que contiene un botón «+Crear Credenciales». Al pulsarlo se abre un desplegable donde elegimos «Ayúdame a elegir».
7. Agregar credenciales. Respondemos ahora a las preguntas:
¿Qué API está utilizando? – API de Google Sheets
¿Desde dónde llamará a la API? – Servidor Web
¿A qué datos accederá? – Datos de la aplicación
¿Piensas utilizar esta API con App Engien? – No, no la estoy usando
Ahora hacemos clic en ¿Qué credenciales necesito?
- Ponemos un nombre.
- Marcamos rol de editor.
- Tipo de clave JSON.
Con todo este proceso obtenemos un archivo JSON que se descarga y una dirección de correo electrónico que copiamos para poner en nuestra hoja de google sheet cuando la compartamos.
De esta forma se autoriza a nuestro script para subir información a la hoja de cálculo.
Periodismo de datos con Python
Para extraer los datos de una web vamos a scrapear una web con los datos del IBEX35, conectaremos el script con una hoja de cálculo Google Sheet y esta con un gráfico en Data Studio. Finalmente incrustamos el gráfico con un iFrame en un post.
Script de Python
Importamos la librería y conectamos con el JSON que nos descargamos.
import pygsheets
client = pygsheets.authorize(service_file='/Users/juand/GSheetpython-1593c3182d2c.json')
Ahora podemos abrir una hoja de cálculo en google Sheet que vamos a llamar Python y cuando la tengamos la conectamos con nuestro script.
sheet = client.open('Python')
wks = sheet[0]
Una vez conectados, vamos con el webscraping. Importamos las librerías de request, pandas y beautifulsoup. A continuación asigno a una variable la URL de donde vamos a sacar la información. Extraemos el código de la página y lo convertimos en un objeto que pueda gestionar beautifulsoup.
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'http://www.bolsamadrid.es/esp/aspx/Mercados/Precios.aspx?indice=ESI100000000&punto=indice'
html_txt = request.get(url)
soup = BeautifulSoup(html_txt)
empresaLista=['INDITEX','TELEFONICA','REPSOL','BBVA']
valorLista=[]
horaLista=[]
Ahora vamos a recorrer la lista que hemos creado con tres empresas. Nuestro script va a buscar los nombres en la tabla de IBEX35 para extraer el valor de las acciones y la hora de cotización. Estos datos los guarda en dos listas que hemos nombrado anteriormente.
for empresa in empresaLista:
valor = soup.find("td",text=empresa).find_next_sibling("td").text
valorLista.append(valor)
horaValores = soup.find('td', text='IBEX 35®').find_next_siblings('td')
horaReal = horaValores[6].text
horaLista.append(horaReal)
Una vez extraída la información la guadamos en un diccionario, la convertimos en tabla de datos que guadamos en un csv y la subimos a nuestra hoja GSheets.
miDiccionario ={'Empresa':empresaLista, 'Cotizacion':valorLista}
print(miDiccionario)
df_COVID =pd.DataFrame(miDiccionario, columns = ['Empresa','Cotizacion'])
df_COVID.to_csv('covid.csv', mode='a', header=False)
df_COVID
wks.set_dataframe(df_COVID,(1,1))
Aquí está el resultado
Ahora cada vez que se ejecute el script que scrapea los datos se actualizará la página y los contenidos serán diferentes.
Una herramienta muy útil para todo aquel periodista que quiera ofrecer información contrastada y filtrada, con criterio y rigor.
Otro ejemplo de publicación dinámica:
Ejemplos notables de periodismo de datos
El periodismo de datos, como hemos visto, es una disciplina que se apoya en la recopilación y análisis de grandes conjuntos de datos para descubrir y contar historias relevantes. A continuación, presentamos algunos ejemplos destacados que ilustran el poder e impacto de esta forma de periodismo.
El primer ejemplo es el proyecto «The Counted» del periódico The Guardian, que se lanzó para recopilar datos sobre todas las personas muertas por la policía en los Estados Unidos. A través de su meticuloso rastreo y análisis de información, esta investigación proporcionó una visión más clara e integral de la frecuencia y circunstancias de estas muertes, algo que no había sido hecho antes con tal detalle por las fuentes gubernamentales.
Otro ejemplo emblemático es el trabajo de ProPublica en «Dollars for Docs», una investigación que arrojó luz sobre los pagos realizados por compañías farmacéuticas a médicos en los EE. UU. Esta base de datos permitió a los pacientes ver si sus médicos recibían compensaciones de empresas farmacéuticas, lo que podría influir en sus decisiones de prescripción, aumentando así la transparencia en la relación médico-paciente.
En España, un referente es «El Barómetro de la Corrupción» de El Mundo, que mediante una visualización interactiva, mostró los casos de corrupción del país desglosados por regiones, partidos políticos y años. Esto no solo aportó claridad al entramado de casos existentes sino que también proporcionó una herramienta educativa y de verificación para los ciudadanos.
Estos ejemplos demuestran cómo el periodismo de datos puede servir como un vehículo para el cambio social, al ofrecer información objetiva y análisis profundos sobre temas críticos, que a menudo son difíciles de descifrar a través de métodos de reportaje más tradicionales.
El periodismo de datos continúa evolucionando y generando nuevas maneras de contar historias que son vitales para nuestra comprensión del mundo. Herramientas como Python, Sheets y Google Data Studio, como se demostró en los ejemplos anteriores de este artículo, son fundamentales en este proceso, permitiendo a los periodistas convertir sets de datos complejos en visualizaciones narrativas y comprensibles.
Juande Marín
Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin