Exportieren Sie den Datenrahmen von Pandas mit Python nach Google Sheets

Hira Arif 15 Februar 2024
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:

  1. Synchronisieren Sie das Projekt mit der Google API-Konsole.
  2. Greifen Sie auf die Google Sheet-API zu.
  3. 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.

    Pandas-Datenrahmen mit Python in Google Sheets exportieren - Projekt 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:

    1. Klicken Sie auf Zugangsdaten erstellen.
    2. Wählen Sie Dienstkonto, geben Sie Name des Dienstkontos ein und drücken Sie dann Fertig (die restlichen Angaben sind optional).
    3. Klicken Sie nach der Erstellung darauf, gehen Sie zur Registerkarte Schlüssel und laden Sie den Schlüssel im JSON-Format herunter.

    Pandas-Datenrahmen mit Python in Google Sheets exportieren - Anmeldeinformationen erstellen

    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-Paket outh2client haben wir eine Klasse ServiceAccountCredentials importiert, die in der Datei service_account.py gespeichert ist.

    Die Funktion create_connection() verbindet client mit den Google Sheets. Es nimmt die service_file als Argument, wo der Credential Key gespeichert ist.

    Vergessen Sie nicht, die service_account.json im selben Verzeichnis wie demo.py zu halten oder ihren Pfad in der service-Variablen zu speichern. Innerhalb dieser Funktion erstellen wir die credentials mit ServiceAccountCredentials.from_json_keyfile_name().

    Dann stellen wir die credentials an gspread.authorize() bereit, die ihre Authentizität prüft und einen client erstellt, wenn der in service_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 erstellten client und sheet_name als Argumente und verwendet die Funktion client.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 Funktion google_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):

Pandas-Datenrahmen mit Python in Google Sheets exportieren - Ausgabe

Während der in Google Sheets exportierte Datenrahmen wie folgt aussieht:

Pandas-Datenrahmen mit Python in Google Sheets exportieren - Ausgabe von Google Sheets