Exportieren Sie den Datenrahmen von Pandas mit Python nach Google Sheets
Google Sheets ist ein webbasiertes Online-Tabellenkalkulationsprogramm, das von Google angeboten wird. Es ist eine Echtzeitanwendung, mit der Benutzer Tabellenkalkulationen erstellen und ändern und Daten online teilen können.
Die meisten Organisationen bitten mehrere Benutzer, gleichzeitig an einer einzigen Tabelle zu arbeiten. Diese Zusammenarbeit verfolgt jede Aktualisierung, die von dem jeweiligen Benutzer im Dokument vorgenommen wird.
Wir können Pandas Datenrahmen als zweidimensionale Datenstruktur nehmen, d. h. eine Tabelle mit Zeilen und Spalten, ähnlich einem zweidimensionalen Array, aber mit beschrifteten Achsen.
Wenn Sie Pandas-Datenrahmen haben, die in Google Sheets exportiert werden sollen, können Sie dies mit Python tun, wie in diesem Tutorial erklärt wird.
Exportieren Sie den Datenrahmen von Pandas mit Python nach Google Sheets
Um den Pandas-Datenrahmen in das Google-Blatt zu exportieren, müssen wir die drei unten aufgeführten Schritte ausführen:
- Synchronisieren Sie das Projekt mit der Google API-Konsole.
- Greifen Sie auf die Google Sheet-API zu.
- Exportieren Sie den Pandas-Datenrahmen in das Google Sheet.
-
Synchronisieren Sie das Projekt mit der Google API-Konsole.
Um das Projekt mit der Google API-Konsole zu synchronisieren, müssen wir zuerst ein Projekt über Google Cloud Console erstellen.
Um Anmeldeinformationen zu erstellen, müssen wir die folgenden zwei APIs aktivieren, indem wir in der Suchleiste suchen:
- Google Drive-API
- Google Sheet-API
Wie erstellt man nun Anmeldeinformationen? Dazu müssen wir die folgenden Schritte ausführen:
- Klicken Sie auf
Zugangsdaten erstellen
. - Wählen Sie
Dienstkonto
, geben SieName des Dienstkontos
ein und drücken Sie dannFertig
(die restlichen Angaben sind optional). - Klicken Sie nach der Erstellung darauf, gehen Sie zur Registerkarte
Schlüssel
und laden Sie den Schlüssel im JSON-Format herunter.
Der Inhalt der heruntergeladenen JSON-Datei (gespeichert in der Datei
service_account.json
) kann wie folgt aussehen:{ "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", ... }
-
Greifen Sie auf die Google Sheet-API zu.
Installieren Sie die folgenden Python-Bibliotheken, um eine Verbindung zu Google Tabellen herzustellen und mit ihnen zu interagieren.
spread
PS C:\> pip install gspread
oauth2client
PS C:\> pip install oauth2client
Lassen Sie uns einen
client
durch den Code erstellen, der die heruntergeladene API verwendet, um die Google Sheets zu verbinden.Beispielcode (gespeichert in
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)
Zuerst haben wir
gspread
importiert und aus dem Python-Paketouth2client
haben wir eine KlasseServiceAccountCredentials
importiert, die in der Dateiservice_account.py
gespeichert ist.Die Funktion
create_connection()
verbindetclient
mit den Google Sheets. Es nimmt dieservice_file
als Argument, wo der Credential Key gespeichert ist.Vergessen Sie nicht, die
service_account.json
im selben Verzeichnis wiedemo.py
zu halten oder ihren Pfad in derservice
-Variablen zu speichern. Innerhalb dieser Funktion erstellen wir diecredentials
mitServiceAccountCredentials.from_json_keyfile_name()
.Dann stellen wir die
credentials
angspread.authorize()
bereit, die ihre Authentizität prüft und einenclient
erstellt, wenn der inservice_file
gespeicherte Schlüssel gültig ist.Im Falle eines Fehlers druckt diese Funktion die
Ausnahme
, ohne das Programm zu unterbrechen. -
Exportieren Sie den Pandas-Datenrahmen in das erstellte Google Sheet.
Um Pandas-Datenrahmen in ein Google-Blatt zu exportieren, müssen wir es zuerst erstellen. Lassen Sie uns einen Code schreiben, der ein Google-Blatt erstellt.
Beispielcode (gespeichert in
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)
Die Funktion
create_google_sheet
nimmt die bereits erstelltenclient
undsheet_name
als Argumente und verwendet die Funktionclient.create()
, um ein Google-Sheet zu erstellen.Beachten Sie, dass dieses Google-Blatt auf dem
client
erstellt wird, der mit der heruntergeladenen API erstellt wurde. Daher müssen wir es mit der E-Mail teilen, die wir zum Erstellen eines Dienstkontos verwendet haben, und die Schreibberechtigungen mithilfe der Funktiongoogle_sheet.share()
erteilen.Hier besteht der letzte Schritt darin, Daten in Google Sheets zu exportieren. Dazu müssen wir die Python-Bibliothek
pandas
wie folgt installieren:PS C:\> pip install pandas
Lassen Sie uns diesen Code ausführen, der schließlich den Pandas-Datenrahmen in Google Sheets exportiert.
Beispielcode (gespeichert in
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)
Standardmäßig ist bereits ein Arbeitsblatt in Google Sheets integriert. Wir können von google_sheet
darauf zugreifen, indem wir den Index als google_sheet.get_worksheet(0)
verwenden.
Darauf exportieren wir dann den Datenrahmen mit der Funktion export_dataframe_to_google_sheet()
. Es listet einfach den Datenrahmen auf und exportiert ihn in Google Sheets.
Nun führen wir die Python-Datei demo.py
wie folgt aus:
PS C:\> python demo.py
Ausgabe (auf Konsole gedruckt):
Während der in Google Sheets exportierte Datenrahmen wie folgt aussieht: