Google Sheets

Las portátiles Jupyter son ​​increíblemente potentes. A diferencia de Google Sheets o Microsoft Excel, pueden manejar grandes cantidades de datos con facilidad.

Puede realizar operaciones estadísticas complejas o manipular datos en unas pocas líneas de código. Puede ejecutar for-loops complejos para crear simulaciones de Monte Carlo sin complementos costosos como Crystal Ball .

Pero a veces necesita combinar este poder con el simple y casi universal UI comprendida de una hoja de cálculo.

Por ejemplo, es posible que desee practicar su elegante código Python en un pequeño conjunto de datos que puede manipular fácil y visualmente en Hojas de cálculo de Google.

O puede que tenga que generar los frutos de su análisis complejo en una hoja de cálculo para que su CEO o cliente no codificador pueda leerlo y entenderlo.

O puede que le resulte más fácil hacer algunos de sus trabajos de datos simples en una hoja de cálculo y solo las partes más complejas de Python.

Solía ​​hacer esto completando mi trabajo en Hojas de cálculo de Google. Descargando un archivo CSV, tirando del Datos de archivos CSV en Jupyter, manipulación de mis datos, exportación de otro archivo CSV y carga de nuevo en Hojas de cálculo de Google. Enjuague y repita para cada depuración o nueva iteración de datos. Yuck.

Pero luego me di cuenta de que Google proporciona una API para conectar hojas a cualquier aplicación de terceros que puedas soñar, incluidas las notebooks Jupyter. Después de retocar un poco, descubrí cómo extraer fácilmente los datos más actualizados de mis hojas de cálculo de Google en Jupyter y los datos de salida de Jupyter a Google Sheets.

Se necesita un poco de configuración de una sola vez. Pero si se encuentra yendo y viniendo entre hojas y Jupyter u ocasionalmente pierde la facilidad de uso de hojas de cálculo, o necesita actualizar los datos en hojas de Jupyter rápidamente, entonces este tutorial es para usted.

NOTA: Estoy usando Python 2.7.14 y Anaconda versión 4.3.30. Puede ver mi entorno completo aquí y mi cuaderno de ejemplos completo utilizado en la parte 2 aquí .

Primera parte: cree sus credenciales de desarrollador de Google

Antes de conectar nuestras notebooks Jupyter a nuestras hojas de google, primero debemos crear credenciales de desarrollador de Google con permiso para acceder a Google Drive. Esta parte es un poco larga y complicada, pero solo tiene que hacer esto una vez para todos los cuadernos y hojas.

Crear un Google Developer Project

Ir a la Consola para desarrolladores de Google .

Click Crear proyecto .

 

google sheet new project

Introduzca un nombre de proyecto: solo uso un proyecto para todos mis cuadernos en lugar de crear uno nuevo para cada proyecto, por lo que denominé mi proyecto “Jupyter y Hojas de cálculo de Google”. También puede cambiar el nombre del ID del proyecto si lo desea.

Haga clic en Crear .

Habilite el API de Google Drive

Después de crear su proyecto, Google lo llevará de regreso a Developer Console. Tuve que actualizar la página para ver mi nuevo proyecto. Haga clic en su nuevo proyecto.

 

 

Vaya al panel de API y servicios haciendo clic en el menú Hamburguesa a la izquierda y seleccione API y servicios > Panel de control 

Google Sheets api servicios

Haga clic en API de Google Drive .

 

Google Sheets api google drive2

Haga clic en Habilitar .

Google Sheets api google drive3

De acuerdo. Ahora hemos creado nuestro proyecto de Google Drive. Obtenga las credenciales para usarlo.

Cree credenciales para usar la API de Google Drive

Después de habilitar la API de Google Drive, Google debe llevarlo a la consola de la API de Google Drive para su proyecto.

Haga clic en Crear credenciales .

Google Sheets credenciales

 

Seleccione Otra UI para “¿A dónde llamará la API?”.

Google Sheets credenciales2

 

Seleccione Datos de usuario para “A qué datos va a acceder ? “Y haga clic en ¿Qué credenciales necesito? .

Ingrese un nombre y haga clic en Crear ID de cliente .

Google Sheets ID cliente

Seleccione su dirección de correo electrónico, ingrese el nombre de un producto y haga clic Continúe .

Descargue sus credenciales y guárdelas en la carpeta donde piensa crear su Jupyter Notebook.

 

Google Sheets Descargue sus credenciales

google sheet Descargue sus credenciales2

Crear credenciales de cuenta de servicio

El último paso para establecer nuestras credenciales es crear credenciales de la cuenta de servicio para que podamos conectar a nuestro cliente (lo que acabamos de crear ) a nuestro Google Drive personal real.

Regrese al panel de Credenciales y cree una Clave de cuenta de servicio .

clave de cuenta de Servicio

Seleccione Nueva cuenta de servicio , establezca el nombre de la cuenta de servicio en Google Sheets , establezca la función en Usuario de la cuenta de servicio , deje el tipo de clave como JSON, haga clic en Crear .

Google Sheets Nueva cuenta de servicio

 

Guarde el archivo JSON a la carpeta donde tiene la intención de crear su Jupyter Notebook (asegúrese de que el nombre del archivo no tenga espacios como este).

Google Sheets archivo JSON

 

De acuerdo. Uf. Tenemos nuestras credenciales de desarrollador de Google con permisos para acceder a Google Drive y, por lo tanto, a Hojas de cálculo de Google.

Parte dos: conecte Jupyter a Hojas de cálculo de Google

Ahora conectemos nuestro cuaderno Jupyter a nuestra Hoja de cálculo.

Instale los paquetes necesarios usando conda install y pip.

        conda install pandas jupyter
        pip install gspread oauth2client df2gspread

Todo el trabajo anterior solo tendrá que hacer una vez. A partir de ahora, será fácil extraer datos de una hoja de Google en un cuaderno Jupyter y viceversa.

Primero, necesitará una hoja de cálculo. Esto puede ser cualquier hoja. Utilizaremos los datos de puntuación de candidato de mi artículo CEO of America .

Para permitir que su cuaderno Jupyter acceda a la Hoja de cálculo de Google, deberá compartir la hoja con las credenciales de desarrollador de Google que creó en la primera parte.

 

Para hacerlo, abra el archivo de credenciales de la cuenta de servicio en Jupyter o un editor de texto.

Google Sheets Jupyter

Copie el atributo client_email.

Google Sheets atributo client_email

Regrese a su hoja de cálculo y haga clic en Compartir .

Pegar el correo electrónico de cliente en el cuadro de personas y haga clic en Enviar .

Google Sheets atributo client_email enviar

 

Necesitará repetir el paso anterior para cualquier hoja que desee extraer de los portátiles Jupyter.

Extraiga los datos de las hojas de Google en el cuaderno Jupyter. Abra o cree un cuaderno Jupyter. La versión completa de mi cuaderno está disponible aquí

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *