Ejercicio 17: Cargando un Google Sheet como un DataFrame en Python desde Google Cloud Platform (GCP)

En este ejercicio, aprenderás a configurar un proyecto en Google Cloud, crear una Service Account y utilizarla para acceder a un Google Sheet desde Python como un pandas.DataFrame. Este ejercicio es de tipo práctico y tiene una dificultad intermedia.

Objetivos

  • Configurar un proyecto en Google Cloud Platform.
  • Crear y gestionar una Service Account.
  • Acceder a un Google Sheet desde Python y cargar los datos en un DataFrame de Pandas.

Entrada de Datos

  1. Proyecto en Google Cloud Platform con Google Sheets API habilitada.
  2. Google Sheet de prueba compartido con la Service Account.
  3. Clave JSON de la Service Account.

Código Base

import gspread
import pandas as pd
from oauth2client.service_account import ServiceAccountCredentials

# 1️⃣ Configurar la autenticación
# Reemplaza 'ruta_a_tu_archivo.json' por la ruta de tu clave JSON de Service Account
credenciales = ServiceAccountCredentials.from_json_keyfile_name(
    "ruta_a_tu_archivo.json", 
    ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
)

# 2️⃣ Conectarse a Google Sheets
cliente = gspread.authorize(credenciales)

# 3️⃣ Abrir el Sheet (Reemplaza con el nombre de tu Google Sheet)
spreadsheet = cliente.open_by_url("https://docs.google.com/spreadsheets/d/1QbDZ78JYbDwecFea1tRbHyzfEpQ7pCHqA_A1ISXYWxM/edit")

# 4️⃣ Seleccionar la primera hoja
hoja = spreadsheet.sheet1  

# 5️⃣ Leer los datos como listas y convertirlos en un DataFrame
datos = hoja.get_all_records()
df = pd.DataFrame(datos)

# ✅ Imprimir para verificar
print("✅ Datos cargados desde Google Sheets:")
print(df.head())

Tareas

  1. Configurar un Proyecto en Google Cloud Platform (GCP)

    • Crea un proyecto en Google Cloud Console.
    • Habilita la Google Sheets API.
    • Crea una Service Account y genera una clave en formato JSON.
  2. Configurar permisos en Google Sheets

    • Crea un Google Sheet de prueba con algunos datos.
    • Comparte el Sheet con la dirección de correo de la Service Account.
  3. Instalar y configurar librerías en Python

    • Instalar las dependencias:
      pip install gspread pandas oauth2client
      
  4. Cargar el Sheet en un DataFrame

    • Leer los datos de la hoja en Python y convertirlos en un DataFrame.

Pruebas

Ejecuta el siguiente código para verificar que los datos se han cargado correctamente en el DataFrame:

# TODO: Implementar
# Verificar que el DataFrame contiene los datos esperados
print(df.head())

Resultado Esperado

Al finalizar este ejercicio, deberías ser capaz de conectar Google Sheets con Python utilizando una Service Account en GCP, leer datos en tiempo real desde Google Sheets y convertirlos en un DataFrame de Pandas. Esto te permitirá automatizar procesos y conectar Google Sheets con proyectos de Data Science y Machine Learning.