Pandas 데이터프레임 mongodb에 저장하기
Pandas 데이터프레임 mongodb에 저장하기
Pandas
Pandas 데이터프레임 mongodb에 저장하기
Pandas는 데이터 분석 및 조작에 매우 유용한 Python 라이브러리입니다. MongoDB는 NoSQL 데이터베이스로, 유연한 스키마와 높은 성능을 제공합니다. 이 글에서는 Pandas를 이용하여 MongoDB에서 데이터를 읽고, DataFrame을 MongoDB에 저장하는 방법을 설명하겠습니다.
1. 필요한 라이브러리 설치
Pandas를 사용하기 위해서는 pandas
와 MongoDB와의 연결을 위한 pymongo
라이브러리가 필요합니다. 아래의 명령어를 통해 필요한 라이브러리를 설치할 수 있습니다.
pip install pandas pymongo
2. MongoDB와의 연결 설정
MongoDB에 연결하기 위해 pymongo
라이브러리를 사용하여 클라이언트를 생성합니다. MongoDB가 로컬에 설치되어 있다고 가정하겠습니다. MongoDB에 접속하기 위한 URL 형식은 다음과 같습니다:
mongodb://<username>:<password>@<host>:<port>/<database>
예제: MongoDB에 연결하기
import pymongo
# MongoDB 클라이언트 생성
= pymongo.MongoClient("mongodb://localhost:27017/")
client
# 사용할 데이터베이스 선택
= client["mydatabase_mongodb"]
db
# 사용할 컬렉션 선택
= db["mycollection"] collection
3. DataFrame을 MongoDB에 저장하기
Pandas DataFrame을 MongoDB에 저장하려면, DataFrame.to_dict()
메서드를 사용하여 DataFrame을 딕셔너리 형식으로 변환한 후, insert_many()
또는 insert_one()
메서드를 사용하여 MongoDB에 저장할 수 있습니다.
예제: DataFrame을 MongoDB에 저장하기
import pandas as pd
# 예시 데이터프레임 생성
= {
data 'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
= pd.DataFrame(data)
df
# DataFrame을 딕셔너리 형식으로 변환하여 MongoDB에 저장
'records'))
collection.insert_many(df.to_dict(
print("DataFrame has been saved to MongoDB.")
코드 설명:
df.to_dict('records')
: DataFrame을 리스트 형태의 딕셔너리로 변환합니다. 각 딕셔너리는 DataFrame의 행을 나타냅니다.collection.insert_many()
: 변환된 딕셔너리 리스트를 MongoDB에 저장합니다.
4. MongoDB에서 DataFrame 읽기
MongoDB에서 데이터를 읽어 DataFrame으로 변환하려면, find()
메서드를 사용하여 데이터를 가져오고, Pandas의 DataFrame()
함수를 사용하여 DataFrame으로 변환합니다.
예제: MongoDB에서 DataFrame 읽기
# MongoDB에서 데이터 읽기
= collection.find()
data_from_mongo
# 데이터를 DataFrame으로 변환
= pd.DataFrame(list(data_from_mongo))
df_from_mongo
# '_id' 열 제거 (MongoDB에서 자동으로 생성된 ID)
'_id', axis=1, inplace=True)
df_from_mongo.drop(
print("\nDataFrame loaded from MongoDB:")
print(df_from_mongo)
출력
DataFrame loaded from MongoDB:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
코드 설명:
collection.find()
: MongoDB에서 모든 데이터를 가져옵니다.pd.DataFrame(list(data_from_mongo))
: MongoDB에서 가져온 데이터를 리스트로 변환한 후, DataFrame으로 변환합니다.df_from_mongo.drop('_id', axis=1, inplace=True)
: MongoDB에서 자동으로 생성된_id
열을 삭제합니다.
5. 전체 코드 예제
이제까지의 내용을 종합하여 전체 코드를 작성해보겠습니다.
import pandas as pd
import pymongo
# MongoDB 클라이언트 생성
= pymongo.MongoClient("mongodb://localhost:27017/")
client = client["mydatabase_mongodb"]
db = db["mycollection"]
collection
# 예시 데이터프레임 생성
= {
data 'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
= pd.DataFrame(data)
df
# DataFrame을 MongoDB에 저장
'records'))
collection.insert_many(df.to_dict(print("DataFrame has been saved to MongoDB.")
# MongoDB에서 데이터 읽기
= collection.find()
data_from_mongo = pd.DataFrame(list(data_from_mongo))
df_from_mongo '_id', axis=1, inplace=True)
df_from_mongo.drop(
print("\nDataFrame loaded from MongoDB:")
print(df_from_mongo)
출력
DataFrame has been saved to MongoDB.
DataFrame loaded from MongoDB:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago