Exporte el marco de datos de Pandas a Google Sheets usando Python
Hojas de cálculo de Google es un programa de hojas de cálculo en línea basado en la web ofrecido por Google. Es una aplicación en tiempo real que permite a los usuarios crear y modificar hojas de cálculo y compartir datos en línea.
La mayoría de las organizaciones piden a varios usuarios que trabajen simultáneamente en una sola hoja de cálculo. Esta colaboración realiza un seguimiento de cada actualización realizada por el usuario específico en el documento.
Podemos tomar el marco de datos de Pandas como la estructura de datos bidimensional, es decir, una tabla que tiene filas y columnas, similar a una matriz bidimensional pero con ejes etiquetados.
Si tiene marcos de datos de Pandas para exportar a Hojas de cálculo de Google, puede hacerlo usando Python, como se explica en este tutorial.
Exporte el marco de datos de Pandas a Google Sheets usando Python
Para exportar el marco de datos de Pandas a la hoja de Google, debemos seguir los tres pasos que se enumeran a continuación:
- Proyecto de sincronización con la consola API de Google.
- Acceda a la API de hojas de cálculo de Google.
- Exporte el marco de datos de Pandas a la hoja de Google.
-
Proyecto de sincronización con la consola API de Google.
Para sincronizar el proyecto con la consola API de Google, primero debemos crear un proyecto a través de Google Cloud Console.
Para crear credenciales, debemos habilitar las siguientes dos API buscando en la barra de búsqueda:
-API de Google Drive
- API de hojas de Google
Ahora, ¿cómo crear credenciales? Para hacer eso, estamos obligados a seguir los siguientes pasos:
- Haga clic en
Crear Credenciales
. - Seleccione
Cuenta de servicio
, ingreseNombre de cuenta de servicio
y luego presioneListo
(el resto de la información es opcional) - Una vez creada, haz clic en ella, ve a la pestaña
Claves
y descarga la clave en formato JSON.
El contenido del archivo JSON descargado (guardado en el archivo
service_account.json
) puede verse así:{ "type": "service_account", "project_id": "some-project-id", "private_key_id": "eb...25", "private_key": "-----BEGIN PRIVATE KEY-----\nNrDyLw...jINQh/9\n-----END PRIVATE KEY-----\n", "client_email": "123...999-yourclientemail@projectid.iam.gserviceaccount.com", "client_id": "473...hd.apps.googleusercontent.com", ... }
-
Acceda a la API de hojas de cálculo de Google.
Instale las siguientes bibliotecas de Python para conectarse e interactuar con Hojas de cálculo de Google.
gspread
PS C:\> pip install gspread
oauth2cliente
PS C:\> pip install oauth2client
Vamos a crear un
cliente
a través del código usando la API descargada para conectar las Hojas de cálculo de Google.Código de ejemplo (guardado en
demo.py
):import gspread from oauth2client.service_account import ServiceAccountCredentials def create_connection(service_file): client = None scope = [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", ] try: credentials = ServiceAccountCredentials.from_json_keyfile_name( service_file, scope ) client = gspread.authorize(credentials) print("Connection established successfully...") except Exception as e: print(e) return client service = "service_account.json" # downloaded Credential file in JSON format client = create_connection(service)
Primero, importamos
gspread
, y desde Python Packageouth2client
, importamos una claseServiceAccountCredentials
almacenada en el archivoservice_account.py
.La función
create_connection()
conectacliente
a las Hojas de cálculo de Google. Toma como argumento elservice_file
donde se almacena la clave de la credencial.No olvide mantener
service_account.json
en el mismo directorio quedemo.py
o almacenar su ruta en la variableservice
. Dentro de esta función, creamos lascredenciales
usandoServiceAccountCredentials.from_json_keyfile_name()
.Luego proporcionamos las
credenciales
agspread.authorize()
que comprueba su autenticidad y crea uncliente
si la clave almacenada enservice_file
es válida.En caso de cualquier error, esta función imprimirá la
Excepción
sin romper el programa. -
Exporte el marco de datos de Pandas a la hoja de Google creada.
Para exportar el marco de datos de Pandas a una hoja de Google, primero debemos crearlo. Escribamos un código que cree una hoja de Google.
Código de ejemplo (guardado en
demo.py
):def create_google_sheet(client, sheet_name): google_sheet = None try: google_sheet = client.create(sheet_name) google_sheet.share( "@gmail.com", # enter the email you want to create a google sheet on perm_type="user", role="writer", ) print("Google Sheet created successfully...") except Exception as e: print(e) return google_sheet service = "service_account.json" # downloaded Credential file in JSON format client = create_connection(service) sheet_name = "50_Startups" # google sheet name of your choice google_sheet = create_google_sheet(client, sheet_name)
La función
create_google_sheet
toma elcliente
ysheet_name
ya creados como argumentos y utiliza la funciónclient.create()
para crear una hoja de Google.Tenga en cuenta que esta hoja de Google se crea en el
cliente
creado con la API descargada. Entonces debemos compartirlo con el correo electrónico que usamos para crear una cuenta de servicio, dando permisos de escritura usando la funcióngoogle_sheet.share()
.Aquí, el paso final es exportar datos a Hojas de cálculo de Google. Para ello, debemos instalar la librería de Python
pandas
usando lo siguiente:PS C:\> pip install pandas
Ejecutemos ese código que finalmente exporta el marco de datos de Pandas a las hojas de Google.
Código de ejemplo (guardado en
demo.py
):import pandas as pd def export_dataframe_to_google_sheet(worksheet, dataframe): try: worksheet.update( [dataframe.columns.values.tolist()] + dataframe.values.tolist() ) print("DataFrame exported successfully...") except Exception as e: print(e) df_file = "50_Startups.csv" dataframe = pd.read_csv(df_file) worksheet = google_sheet.get_worksheet(0) export_dataframe_to_google_sheet(worksheet, dataframe)
De forma predeterminada, ya hay una hoja de trabajo creada dentro de las hojas de Google. Podemos acceder desde google_sheet
usando el índice como google_sheet.get_worksheet(0)
.
Luego exportamos el marco de datos usando la función export_dataframe_to_google_sheet()
. Simplemente enumera el marco de datos y lo exporta a las hojas de Google.
Ahora, ejecutamos el archivo de Python demo.py
como:
PS C:\> python demo.py
Salida (impresa en la consola):
Mientras que el marco de datos exportado a las hojas de Google es el siguiente: