程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

MongoDB保存與讀取Numpy與Pandas格式的數據

編輯:Python

對於Numpy格式的數據:

  • 保存時使用:Binary(pickle.dumps(array, protocol=2)),其中array就是ndarry格式的數組
  • 加載時使用:pickle.loads(result['numpy'])

對於Pandas格式的數據:

  • 保存時使用:json.dumps(dataframe.to_dict('records'))
  • 加載時使用:pd.DataFrame(json.loads(result['dataframe']))

示例代碼

import pymongo
import numpy as np
import pandas as pd
import json
import pickle
from bson.binary import Binary
# 連接數據庫
mongo_conn = pymongo.MongoClient(host='localhost', port=27017)
db = mongo_conn.get_database("test") # 指定數據庫
coll = db.get_collection("people") # 獲得集合
# 構造數據
array = np.random.random(size=(5, 10)) # 要保存的numpy格式數據
dataframe = pd.DataFrame(data=np.random.random(size=(10, 20))) # 要保存的pandas dataframe格式數據
config_dict = {

'a': True,
'b': False,
'c': 3,
'd': ["a", "b", 3],
}
# 開始保存
coll.insert_one({
 # 插入
'_id': '測試',
'dataframe': json.dumps(dataframe.to_dict('records')),
"numpy": Binary(pickle.dumps(array, protocol=2)),
"config_dict": config_dict,
})
# 復原回去
result = coll.find_one({
"_id": "測試"})
recover_dataframe = pd.DataFrame(json.loads(result['dataframe']))
recover_array = pickle.loads(result['numpy'])
recover_config_dict = result['config_dict']

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved