Python

Importar datos desde Google Spreadsheets en Python con Pandas

Posiblemente los dos formatos más utilizados para la exportación de conjuntos de datos sean los archivos CSV o libros de Excel. Para los que existen funciones de importación en Pandas. Ahora bien, otra herramienta muy popular en la actualidad es Google Spreadsheets, para la que actualmente no existe un método en Pandas. Aún así es posible importar datos desde Google Spreadsheets en Python con Pandas. Lo que se puede hacer exportando los datos o usando directamente la URL de un documento.

Exportación de la hoja de cálculo

Posiblemente la manera más sencilla es exportar la hoja de cálculo desde Google Spreadsheets a uno de los formatos conocidos por Pandas. Por ejemplo podemos exportar a formato de Microsoft Excel y utilizar el método pandas.read_excel() o exportar a un archivo CSV e importar los datos con pandas.read_csv().

Este es un método que podemos utilizar sí sabemos que los datos no van a cambiar. Pero en el caso de que estos se actualicen periódicamente y automatizar el análisis esta no es una buena opción. En esto casos deberíamos poder importar el archivo directamente desde una URL.

Publicar el contenido de la hoja de cálculo con Google Spreadsheets

Para poder acceder al contenido de una hoja de cálculo de Google Spreadsheets es necesario publicar esta. Algo que se puede hacer en la opción “Publicar en la Web” del menú Archivo.

Accediendo al menú “Publicar en la Web”

Una vez seleccionada esta opción nos aparecerá un asistente. En este seleccionaremos la opción “Enlace” y en la primera opción seleccionaremos lo que deseamos exportar. Todo el documento o solamente una parte de este. Como segunda opción seleccionaremos “Valores separados por comas (.csv)”. Generando así un enlace en el que se encuentra un archivo en formato CSV.

Configurando la opción de publicación en Google Spreadsheets

Importar el archivo desde Google Spreadsheets en Python

Ahora que contamos con un enlace a un documento CSV, se puede utilizar el método pandas.read_csv() para importar el documento. Para ello solamente hay que indicar la URL que hemos obtenido en el paso anterior en lugar del archivo.

import pandas as pd

df = pd.read_csv(url)

Importar en otros formatos

Además de CSV también es posible publicar los datos desde Google Spreadsheets en TSV o Microsoft Excel. En tal caso solo deberíamos cambiar la función de importación a la correspondiente.

Incluso si ya disponemos de la URL en un formato, solo hay que cambiar al final de esta el valor de la opción output por el que deseemos. Pudiendo descargar en cualquiera de los formatos compatibles.

Conclusiones

Hoy hemos visto cómo podemos importar datos desde Google Spreadsheets en Python con Pandas. Un proceso que es relativamente sencillo, ya que se pueden usar las URL de publicación de este servicio para acceder a los datos. Aunque estos se actualicen periódicamente.

Imagen de Lalmch en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Excel

Recent Posts

Docker Compose: el día a día. Cómo ver qué funciona y qué no

Si acabas de montar tu aplicación en Docker Compose, la primera pregunta que haces cada…

18 horas ago

Migrar tslane a un paquete dual CommonJS y ESM con tsup y Vitest

tslane es la plantilla que uso como punto de partida para mis librerías TypeScript, nacida…

6 días ago

Cómo construir tu primer scorecard paso a paso

En los artículos anteriores de esta serie vimos la teoría detrás del credit scoring: qué…

1 semana ago

Actualizar expresslanets a ES Modules con tsx y Vitest

expresslanets es la plantilla de API REST con Express y TypeScript que empezó como una…

2 semanas ago

Pareto/NBD: cuando el abandono silencioso cambia el CLV

En el artículo del Dashboard vimos que Pareto/NBD aparecía junto a BG/NBD con un ajuste…

2 semanas ago

Por qué migrar tus proyectos TypeScript a ES Modules en 2026

Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…

3 semanas ago

This website uses cookies.