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.
-
pandas
PS C:\> pip install pandas
-
json
PS C:\> pip install json
-
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):
Während der in MongoDB eingefügte Datenrahmen unten ist.