MongoDB保存与读取Numpy与Pandas格式的数据到一个数据格里

2023-11-02

对于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']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB保存与读取Numpy与Pandas格式的数据到一个数据格里 的相关文章

随机推荐

  • Sass中@each、@for、@if的搭配使用

    CSS 预处理器赋予了 CSS 逻辑编程的能力 其中 Sass Less Stylus 最受欢迎 语法都是大同小异 上手也很快 在项目中使用最多的可能要数 Sass 了 本文就讲讲 Sass 中循环遍历 each for 和 if 判断的搭
  • SpringBoot 返回json数据 的几种方式

    一 RestController RequestMapping RestController public class TestController RequestMapping public User test User user new
  • LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

    描述 给出一个代表网址 host 的字符串 base url 和代表查询参数的列表 query params list 你需要返回带查询参数的完整 URL 查询参数列表由一些包含两个元素的数组组成 数组第一个元素代表参数 数组第二个元素代表
  • 8-js高级-4

    JavaScript 进阶 4 深浅拷贝 浅拷贝 浅拷贝 把对象拷贝给一个新的对象 开发中我们经常需要复制一个对象 如果直接赋值 则复制的是地址 修改任何一个对象 另一个对象都会变化 常见方法 拷贝对象 Object assgin 展开运算
  • postgresql安装报错

    postgresql安装报错 版本问题 版本问题 第一次下载安装postgresql 进到官网 随便点了一个12得版本进行下载 postgresql 12 12 1 windows x64 下载后双击运行 直接提示 百度了一圈 有说 用管理
  • Python实战RBF神经网络

    程序员A 哥们儿 最近手头紧 借点钱 程序员B 成啊 要多少 A 1000行不 B 咱俩谁跟谁 给你凑个整 这1024 拿去吧 之前我们讲了神经网络 人工神经网络是受到人类大脑结构的启发而创造出来的 这也是它能拥有真智能的根本原因 在我们的
  • pycharm创建py脚本自动增加注释和描述

    pycharm创建py脚本自动增加注释和描述 创建脚本时可自动带入简单注释 设备 MAC 注释内容如下 Time DATE TIME Author fanzw File NAME py Description 可自由扩展 效果如下
  • JVM的垃圾回收机制 总结(垃圾收集、回收算法、垃圾回收器)

    如果想了解Java内存模型参考 jvm内存模型 和内存分配以及jdk jre jvm是什么关系 阿里 美团 京东 相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题 有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制
  • 《C++ System Programming Cookbook》第一章读书笔记

    阅读书籍 C System Programming Cookbook 记录 使用docker linux 用户管理常见命令 adduser 创建用户 login 用户登录 passwd 修改用户密码 usermod a G 用户加入组 us
  • 【C语言-进阶】自定义类型详解(结构体+枚举+联合)

    结构体的声明与定义 s0 s1 s2都是struct Stu 的别名 即结构体的重命名 这种情况下就不可以在声明的同时定义变量了 sp spp都是sturct Stu类型的 n1为结构体声明的同时定义变量 在下面重新赋值时不能只写n1 还要
  • Jetson Nano中使用Darknet(AlexeyAB版本)运行YOLOV4

    之前几天使用了Darknet来跑YOLOV3 或多或少遇到了一些问题 一些问题也还没有解决 YOLOV3的作者呢之前宣布自己不再更新了 那么AlexeyAB就搞了YOLOV4的版本 接下来我们就尝试一下YOLOV4 安装Darknet Al
  • element UI 动态生成表头

    最近开始搞vue了 由于 element UI 中的 table 不能像 antd 里的 table 直接注入 json 字符串生成表头 这导致了不能轻松的通过后台生成表格 或是对表头进行排序 在网上参考找了一种最简易的方法 可以给表格里面
  • VS社区版离线试用到期解决办法

    很多朋友在学习工作中 有时需要离线安装VS2017 2019 而社区版 而社区版试用时间只有30天 到期后无法继续使用 下面教大家一种解决这个问题的办法 如下 1 下载离线授权文件 VS离线授权文件 1 开始 gt Visual Studi
  • 归并排序(递归)

    归并排序是通过递归的思想实现的排序算法 什么是递归呢 递归就是需要我们转变思想 思考将一个大事转变为一个个与原问题相似的小事 而我们需要对一个整型数组排序 应该怎样将排序整个数组这么大的规模转变为排序两个数这么小的规模呢 假设我们需要排序的
  • popwindow下拉筛选 二级联动_Excel技巧:一、二、三级联动下拉菜单制作方法分享...

    平时工作过程中 经常会用到Excel表格 关于表格数据处理还有一些小技巧的 掌握一个小技巧 可能对办公效率的提高起到很大的作用 表格中对常见的可能就是表格下拉菜单的设置了 比如说 性别 这一栏 如果每次填写都得重新输入的话 要是人数众多这工
  • vue 基于el-table实现多页多选/单选、翻页回显过程

    1 问题 表格可以多选 单选 分页的时候 表格数据能进行回显 type selection 可以设置表格进行多选 row key 指定数据的 Key 用来优化 Table 的渲染 select单选的事件 select all多选的事件 这两
  • 整数与IP地址间的转换Python

    data input split IP地址转整数 a b caozuo a append bin int i 2 rjust 8 0 for i in data for i in a b i ac int b 2 print ac data
  • SQL查询优化

    一 为什么要对SQL进行优化 我们开发项目上线初期 由于业务数据量相对较少 一些SQL的执行效率对程序运行效率的影响不太明显 而开发和运维人员也无法判断SQL对程序的运行效率有多大 故很少针对SQL进行专门的优化 而随着时间的积累 业务数据
  • AD20圆形PCB板铺铜(铜皮直径可小于板框直径)

    首先 板子是圆形的 可能会需要铺圆形的铜皮 1 画一个圆 选中后右键 选择铺铜操作 铺铜管理器 2 打开铺铜管理器后 选择来自新的 多边形 选择板外形 3 右侧选择layer以及net 设置铺铜相关的属性 4 若所铺圆形铜皮直径小于圆形板框
  • MongoDB保存与读取Numpy与Pandas格式的数据到一个数据格里

    对于Numpy格式的数据 保存时使用 Binary pickle dumps array protocol 2 其中array就是ndarry格式的数组 加载时使用 pickle loads result numpy 对于Pandas格式的