Fügen Sie den Pandas-Datenrahmen mit PyMongo in MongoDB ein

Hira Arif 15 Februar 2024
Fügen Sie den Pandas-Datenrahmen mit PyMongo in MongoDB ein

MongoDB ist eine dokumentenorientierte Open-Source-Datenbank, die flexible, JSON-ähnliche Dokumente zum Speichern und Abfragen von Daten unterstützt. Es verwendet eine dynamische, schemalose Abfragesprache (DQL), mit der Sie Abfragen in JavaScript ausdrücken können.

Wir können MongoDB als Backend-Datenbank für Anwendungen entwerfen, die einen schnellen Zugriff auf sich ändernde Daten erfordern und deren Bereitstellungen sich im Laufe der Zeit als Web-Apps und APIs ändern.

Pandas Data Frame ist eine Klasse von Python-Datenstrukturen, die für die Datenanalyse und Datenmanipulation verwendet werden, wie Tabellen in Excel oder Datenbanken mit Zeilen und Spalten. Dieses Tutorial erklärt das Einfügen von Pandas-Datenrahmen in MongoDB mit PyMongo.

Fügen Sie den Pandas-Datenrahmen mit PyMongo in MongoDB ein

Um den pandas-Datenrahmen in MongoDB einzufügen, müssen wir die folgenden Python-Bibliotheken installieren.

  1. pandas

    PS C:\> pip install pandas
    
  2. json

    PS C:\> pip install json
    
  3. pymongo

    PS C:\> pip install pymongo
    

Lassen Sie uns einen client erstellen, indem Sie den folgenden Code ausführen.

Beispielcode (gespeichert in demo.py):

from pymongo import MongoClient


def create_connection():
    connection = None
    try:
        connection = MongoClient("mongodb://localhost:27017/")
        print("Connection made!!")
    except Exception as e:
        print(e)
    return connection


client = create_connection()

Aus dem Python-Paket pymongo importieren wir eine Klasse MongoClient. Die obige Funktion create_connection() verwendet diese Klasse, um eine Verbindung herzustellen, indem sie den MongoDB-Server lokal unter der Portnummer 27017 verbindet.

Anschließend gibt er die Verbindung an den client zurück. Lassen Sie uns den folgenden Code ausführen, der eine Datenbank namens db erstellt.

Beispielcode (gespeichert in demo.py):

def create_database(client, db_name):
    db = None
    try:
        db = client[db_name]
        print(f"Database {db_name} created!!")
    except Exception as e:
        print(e)
    return db


db_name = "companyDB"  # name of your database
db = create_database(client, db_name)

Die Funktion create_database() erstellt eine Datenbank namens db, indem sie client und db_name als Argumente nimmt. Im Falle eines Fehlers druckt diese Funktion die Ausnahme, ohne das Programm zu unterbrechen.

Lassen Sie uns nun den folgenden Code ausführen, um eine Sammlung zu erstellen.

Beispielcode (gespeichert in demo.py):

def create_collection(db, collection_name):
    collection = None
    try:
        collection = db[collection_name]
        print(f"Collection {collection_name} created!!!")
    except Exception as e:
        print(e)
    return collection


collection_name = "startups"  # name of your collection
collection = create_collection(db, collection_name)

Wir erstellen eine Sammlung mit der obigen Funktion create_collection() mit dem angegebenen Namen in der bereitgestellten Datenbank. Es ermöglicht uns das Einfügen von Pandas Data Frame in die MongoDB.

Der folgende Code fügt Pandas Data Frame in die erstellte Sammlung ein.

Beispielcode (gespeichert in demo.py):

import json
import pandas as pd


def insert_records(collection, records):
    rows = None
    try:
        rows = collection.insert_many(records)
        print(f"{len(rows.inserted_ids)} records added successfully")
    except Exception as e:
        print(e)
    return rows


df_file = "50_Startups.csv"
df = pd.read_csv(df_file)

records = json.loads(df.T.to_json()).values()
insert_records(collection, records)

Um den pandas-Datenrahmen in MongoDB einzufügen, müssen wir ihn zuerst mit der pandas-Bibliothek lesen. Standardmäßig unterstützt MongoDB Dateien vom Typ JSON, daher müssen wir den Datenrahmen mit der Funktion to_json() in das unterstützte Format konvertieren.

Die Funktion insert_records() nimmt db, collection_name und konvertierte Datenrahmen records als Argumente und fügt sie in die collection ein. Wir verwenden die Funktion insert_many(), um mehrere Datensätze auf einmal einzufügen.

Nachdem wir den Datenrahmen schließlich in die Datenbank eingefügt haben, müssen wir die Verbindung schließen, indem wir den folgenden Code ausführen.

Beispielcode (gespeichert in demo.py):

# Close Connection
def close_connection(client):
    if client:
        client.close()
        print("Connection closed!!")


close_connection(client)

Die Funktion close_connection() verwendet die Funktion client.close(), um die Verbindung zu schließen, falls sie besteht.

Nun führen wir die Python-Datei demo.py wie folgt aus:

PS C:>python demo.py

Ausgabe (auf Konsole gedruckt):

Konsolenausgabe

Während der in MongoDB eingefügte Datenrahmen unten ist.

Datenbankausgabe