Python Mongodb: Pandas Dataframe’i MongoDB’ye Yazmak
Merhabalar bu yazımızda Python Mongodb entegrasyonunu yapıp Python Pandas Dataframe verisini Python kullanarak MongoDB’ye yazacağız. MongoDB ile etkileşime geçmek için çok farklı dillere ait driver paketler yazılmış. Bu dillerden birisi de Python. Bu yazımızda Python’ın pymongo kütüphanesini kullanacağız. Bu kütüphane Python diliyle MongoDB’de bir şeyler yapmak isteyenler için yegane çözüm. Bu yazıyı takip etmek için bazı ön koşullarımız olacak.
- MongoDB kurulu ve 27017 portundan erişilebilir durumdadır. Örneğin, benim MongoDB sunucum
docker:27017
‘de şuan çalışıyor. Buradaki docker benim sunucuya verdiğim isim. Aslında ip numarası docker-machine ip adresi. Hazırda bir MongoDB’niz yok ise docker ile hızlı bir şekilde kullanıma hazır hale getirebilirsiniz. - Python3 yüklü ve çalışır durumdadır.
- Kullanacağımız modülün adı pymongo.
python -m pip install pymongo
komutu ile bu modülü yüklemiş olmalısınız. - Jupyter kullanabiliyorsunuz.
1. Pandas Dataframe Oluşturma
Basit bir dataframe oluşturalım.
import pandas as pd artists = [ { "name": "Filiz AKIN", "address": "Bebek İstanbul"}, { "name": "Sadri ALIŞIK", "address": "Nişantaşı İstanbul"}, { "name": "Behzat Ç", "address": "Çankaya Ankara"}, { "name": "Ayhan IŞIK", "address": "Sultanbeyli İstanbul"}, { "name": "Cüneyt ARKIN", "address": "Odunpazarı Eskişehir"} ] df = pd.DataFrame(artists) df.head()
df.head()
sonrası dataframe görünüm:
name | address | |
---|---|---|
0 | Filiz AKIN | Bebek İstanbul |
1 | Sadri ALIŞIK | Nişantaşı İstanbul |
2 | Behzat Ç | Çankaya Ankara |
3 | Ayhan IŞIK | Sultanbeyli İstanbul |
4 | Cüneyt ARKIN | Odunpazarı Eskişehir |
MongoDB json dosya formatı ile çalıştığından pandas dataframe’i json formatına çevirelim.
# pandas dataframe'i json formatına çevir import json records = json.loads(df.T.to_json()).values()
2. MongoDB Veri Tabanı ve Collection Oluşturma
pymongo kütüphanesi ile rahatlıkla veri tabanı oluşturup collection yaratabiliriz. Collection kavramı yabancı geldiyse onu ilişkisel veri tabanlarındaki tablo gibi düşünebilirsiniz.
Mongodb bağlantısı:
import pymongo # mongodb bağlantı myclient = pymongo.MongoClient("mongodb://docker:27017")
Veri tabanı oluşturma. Varsa seçer, yoksa oluşturur.
# bir veri tabanı seç veya yoksa oluştur. # Not: İçine bir şey konulmadıkça mongodb'de veri tabanı gerçekten oluşmaz. db = myclient["mydatabase"]
Collection oluşturma:
# Bir collection oluştur. my_collection = db["artists"]
Yukarıda dataframe’den json’a çevirdiğimiz sanatçıları şimdi MongoDB’ye yazalım.
#json formatına çevrilen dataframe'i mongodb'ye yaz x = my_collection.insert_many(records)
Kontrol yapalım ve ilk kaydı (document) görelim.
y = my_collection.find_one() print(y)
Sonuç:
{'_id': ObjectId('5da078ce688e42fcb888bd9d'), 'name': 'Filiz AKIN', 'address': 'Bebek İstanbul'}
İşte bu kadar. Bu yazımızda hızlı bir şekilde pandas dataframe’i MongoDB’ye Python kullanarak nasıl yazacağımızı gördük. Başka bir yazıda buluşmak dileğiyle hoşçakalın…