PyMongo를 사용하여 Pandas 데이터 프레임을 MongoDB에 삽입
MongoDB는 데이터를 저장하고 쿼리하기 위해 JSON과 유사한 유연한 문서를 지원하는 오픈 소스 문서 지향 데이터베이스입니다. JavaScript로 쿼리를 표현할 수 있는 동적 체계 없는 쿼리 언어(DQL)를 사용합니다.
변화하는 데이터에 대한 빠른 액세스가 필요한 애플리케이션을 위한 백엔드 데이터베이스로 MongoDB를 설계할 수 있으며 배포는 웹 앱 및 API와 같이 시간이 지남에 따라 달라집니다.
Pandas 데이터 프레임은 Excel의 테이블이나 행과 열이 있는 데이터베이스와 같이 데이터 분석 및 데이터 조작에 사용되는 Python 데이터 구조 클래스입니다. 이 튜토리얼은 PyMongo를 사용하여 Pandas 데이터 프레임을 MongoDB에 삽입하는 방법을 설명합니다.
PyMongo를 사용하여 Pandas 데이터 프레임을 MongoDB에 삽입
pandas
데이터 프레임을 MongoDB에 삽입하려면 아래 Python 라이브러리를 설치해야 합니다.
-
판다
PS C:\> pip install pandas
-
json
PS C:\> pip install json
-
파이몽고
PS C:\> pip install pymongo
아래 코드를 실행하여 클라이언트
를 생성해 봅시다.
예제 코드(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()
Python 패키지 pymongo
에서 MongoClient
클래스를 가져옵니다. 위의 create_connection()
함수는 해당 클래스를 사용하여 포트 번호 27017
에서 로컬로 MongoDB 서버를 연결하여 연결
을 생성합니다.
그런 다음 연결
을 클라이언트
로 반환합니다. db
라는 데이터베이스를 생성하는 아래 코드를 실행해 봅시다.
예제 코드(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)
create_database()
함수는 client
및 db_name
을 인수로 사용하여 db
라는 데이터베이스를 생성합니다. 오류가 있는 경우 이 기능은 프로그램을 중단하지 않고 예외
를 인쇄합니다.
이제 아래 코드를 실행하여 컬렉션
을 생성해 보겠습니다.
예제 코드(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)
제공된 데이터베이스에서 지정된 이름으로 위 함수 create_collection()
을 사용하여 컬렉션
을 생성합니다. 이를 통해 Pandas 데이터 프레임을 MongoDB에 삽입할 수 있습니다.
아래 코드는 생성된 collection
에 Pandas Data Frame을 삽입합니다.
예제 코드(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)
pandas
데이터 프레임을 MongoDB에 삽입하려면 먼저 pandas
라이브러리를 사용하여 읽어야 합니다. 기본적으로 MongoDB는 JSON 유형 파일을 지원하므로 to_json()
함수를 사용하여 데이터 프레임을 지원되는 형식으로 변환해야 합니다.
insert_records()
함수는 db
, collection_name
및 변환된 데이터 프레임 records
를 인수로 사용하여 collection
에 삽입합니다. insert_many()
함수를 사용하여 한 번에 여러 레코드를 삽입합니다.
마지막으로 데이터 프레임을 데이터베이스에 삽입했으므로 아래 코드를 실행하여 연결을 닫아야 합니다.
예제 코드(demo.py
에 저장됨):
# Close Connection
def close_connection(client):
if client:
client.close()
print("Connection closed!!")
close_connection(client)
close_connection()
함수는 client.close()
함수를 사용하여 연결이 존재하는 경우 연결을 닫습니다.
이제 Python 파일 demo.py
를 다음과 같이 실행합니다.
PS C:>python demo.py
출력(콘솔에 인쇄됨):
MongoDB에 삽입된 데이터 프레임은 아래와 같습니다.