《使用Python将Excel数据批量写入MongoDB数据库》
在数据分析及处理过程中,我们经常需要将数据写入数据库。而MongoDB作为一种NoSQL数据库,其具有强大的可扩展性、高性能以及支持复杂查询等特性,广泛用于大规模数据存储和分析。在这篇文章中,我们将使用Python编写一个将Excel数据批量写入MongoDB的脚本,以便更加高效地管理数据。
首先,我们需要先安装必要的依赖包,即pandas和pymongo。在安装完毕后,我们可以使用如下代码连接到MongoDB数据库:
import pandas as pd
from pymongo import MongoClient, UpdateOne# 连接到MongoDB数据库
client = MongoClient('mongodb://localhost:27017/')
db = client['pms']
collection = db['hospital']
在连接到数据库之后,我们需要读取Excel文件,并对数据进行初步的处理。在这里,我们使用pandas库来读取Excel数据,然后使用一些函数对数据进行清洗和转换:

# 读取Excel文件
excel_file = 'D:/下载/各省数据 - 副本/20230407北京各事业部用户客户数据汇总.xls'
df = (pd.read_excel(excel_file, skiprows=4, sheet_name='101').iloc[0:-3] # 删除倒数3行.iloc[:, 2:] # 删除前俩列.drop(columns=['备注']) # 删除最后1列.fillna({'护士': 0}) # 用指定的值填充缺失值.ffill() # 填充空值.assign( # 拆分序列医院名称=lambda x: x['医院名称'].str.split("\n"),科室=lambda x: x['科室'].ffill().apply(int), # 转换类型床位=lambda x: x['床位'].ffill().apply(int), # 转换类型)
)
其中,我们使用了一些pandas的函数,如fillna、ffill、drop、assign等来对数据进行处理。处理完成后,我们将数据转换为列表形式,并使用一个字典来将数据按照医院进行分组:
data_list = df.values.tolist()
hospitals = {}
for result in data_list:hospital_name = result[0][0]if hospital_name not in hospitals:hospitals[hospital_name] = {'hospital': result[0][0],'department': result[1],'bed': result[2],'doctor': [result[3]],'nurse': [result[4]],}else:if result[3] not in hospitals[hospital_name]['doctor']:hospitals[hospital_name]['doctor'].append(result[3])if result[4] != 0 and result[4] not in hospitals[hospital_name]['nurse']:hospitals[hospital_name]['nurse'].append(result[4])
在生成字典之后,我们需要将数据批量写入MongoDB数据库中。这里使用了pymongo库的bulk_write函数,它能够高效地批量添加、修改和删除数据:
# 批量添加或更新数据
operations = []
for data in hospitals.values():operations.append(UpdateOne({'hospital': data['hospital']}, {'$set': data}, upsert=True))
result = collection.bulk_write(operations)
print(f'添加或更新数据完毕,共执行 {result.modified_count + result.upserted_count} 项操作。')
最后,我们可以通过运行这些代码来将Excel数据批量写入MongoDB数据库。这种方法极大地提高了数据管理的效率,使我们能够更好地处理数据,更好地进行数据分析。
综上所述,本篇文章介绍了一个简单的Python脚本,可将Excel数据批量写入MongoDB数据库。这个方法不仅高效,而且易于操作,非常适合处理大规模数据。
相关文章:
《使用Python将Excel数据批量写入MongoDB数据库》
在数据分析及处理过程中,我们经常需要将数据写入数据库。而MongoDB作为一种NoSQL数据库,其具有强大的可扩展性、高性能以及支持复杂查询等特性,广泛用于大规模数据存储和分析。在这篇文章中,我们将使用Python编写一个将Excel数据批…...
leetcode_828_统计子串中的唯一字符
题意:所有子串中单个字符出现的次数和 问题转化:对于串中的每个字符,只包含其一次的所有子串的个数和 关于求只包含某位置字符一次的子串个数 class Solution { public:int uniqueLetterString(string s) {/* ...A...A...A...*/int n s.size…...
「Java开发中文指南」IntelliJ IDEA插件安装(一)
IntelliJ IDEA是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能是非常强大的。 插件扩展了Intel…...
单机多卡训练
参考几个不错的帖子(还没来得及整理): 基于pytorch多GPU单机多卡训练实践_多卡训练效果不如单卡-CSDN博客 关于PyTorch单机多卡训练_能用torch.device()实现多卡训练吗-CSDN博客 Pytorch多机多卡分布式训练 - 知乎 (zhihu.com) 当代研究生…...
数据库基础教程之数据库的创建(一)
双击打开Navicat,点击:文件-》新建连接-》PostgreSQL 在下图新建连接中输入各参数,然后点击:连接测试,连接成功后再点击确定。 点击新建数据库 数据库设置如下:...
Python教程:DataFrame列数据类型的转换
Pandas提供了多种数据类型转换方法。可以使用astype()函数来转换数据类型。例如,可以将字符串类型的列转换为整数类型的列: # Author : 小红牛 # 微信公众号:wdPython import pandas as pd# 创建包含字符串类型列的DataFrame df pd.DataFra…...
4-Python与设计模式--抽象工厂模式
4-Python与设计模式–抽象工厂模式 一、快餐点餐系统 想必大家一定见过类似于麦当劳自助点餐台一类的点餐系统吧。在一个大的触摸显示屏上, 有三类可以选择的上餐品: 汉堡等主餐、小食、饮料。当我们选择好自己需要的食物,支付完成后&#…...
STM32 默认时钟更改 +debug调试
STM32时钟 文章目录 STM32时钟前言一、修改系统时钟二、DEBUG 前言 为什么我们要改STM32的时钟呢,打个比方在做SPI驱动的时候,需要16M的时钟,但是stm32默认是72的分频分不出来,这个时候我们就要改系统时钟了,那么怎么…...
转成String类型的几种方式
文章目录 1. String.valueOf()2. 包装类-toString()3. 使用字符串拼接4. 强制类型转换 (String) object5. 总结:6. 基本数据类型和包装类 1. String.valueOf() String.valueOf():基本数据类型或包装类都可以通过 String.valueOf() 方法转为字符串表示形…...
Android BSP 开发之六
1.设定Android settings中某个xml文件(包括其子项)或者某个Preference不被搜索到 设定某个xml文件(包括子项)不被搜索到 找到该xml文件对应的fragment java文件中的SEARCH_INDEX_DATA_PROVIDER,在该provider中对isPageSearchEnabled方法进行重写并…...
mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式
文章目录 MyBatis简介结构图Mybatis缓存(一级缓存、二级缓存)MyBatis是什么?mybatis的实现原理JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?Mybatis优缺点优点缺点映射关系 MyBatis的解析和运行原理MyBatis的…...
Effective Modern C++(1.顶层const与底层const)
1.顶层const与底层const的定义 const修饰的变量不可以改变,那么他就是顶层const,如: const int a 10; 那么,对于 const int *const p new int(10); 第二个const就是顶层const,因为他修饰的是p;第一个…...
mmsegmentation学习笔记
mmsegmentation教程 下载预训练权重 github–>mmsegmentation–>model zoo–>XXX model(如:PSPNet)–>找到预选连权重与config的前缀一致:pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 (model) 了解配置文件 查看…...
RabbitMQ简易安装
一般来说安装 RabbitMQ 之前要安装 Erlang ,可以去Erlang官网下载。接着去RabbitMQ官网下载安装包,之后解压缩即可。 Erlang官方下载地址:Downloads - Erlang/OTP RabbitMQ官方下载地址:Downloading and Installing RabbitMQ —…...
Mac M1 安装Docker打包arm64的python项目的镜像包
1、首先安装Docker,到官网下载,选择apple chip版 Docker中文网 官网 2、双击下载的dmg文件,在弹出框中之间拖拽到右边 3、打开docker,修改国内镜像源,位置在配置-DockerEngine "registry-mirrors": ["…...
『OPEN3D』1.8 点云的配准理论
点云的配准是将不同的3D点云对齐成一个完成的点云模型;配准的目标是找到两帧点云之间的相对旋转(rotation)与平移(translation),使得两份点云中有重叠的区域能够完好拼接。 点云配准示例图(来自…...
Python数据结构
目录 5.1. 列表详解 5.1.1. 用列表实现堆栈 5.1.2. 用列表实现队列 5.1.3. 列表推导式 5.1.4. 嵌套的列表推导式 5.2. del 语句 5.3. 元组和序列 5.4. 集合 5.5. 字典 5.6. 循环的技巧 5.7. 深入条件控制 5.8. 序列和其他类型的比较 本章深入讲解之前学过的一些内容…...
突发!新华三总裁《致全体员工的一封信》,中高层全面降薪10%-20%!
* 你好,我是前端队长,在职场,玩副业,文末有福利! 精彩回顾:进了央企,拿了户口,却感觉被困住了。 11月23号,某社交平台爆出了新华三总裁于英涛的《致全体员工的一封信》&a…...
QIIME 2介绍
QIIME 2(Quantitative Insights Into Microbial Ecology 2)是一个用于分析和解释微生物组数据的开源生物信息学工具。它是QIIME的第二个版本,经过重新设计以提高灵活性、可扩展性和可重复性。 1. 关于QIIME 2的一些重要特征和概念࿱…...
Spring Cloud Gateway 的简单介绍和基本使用
前言 本文主要对Spring Cloud Gateway进行简单的概念介绍,并通过多模块编程的方式进行一个简单的实操。 文章目录 前言1 什么是网关(概念)2 微服务中的网关2.1 问题12.2 问题2 3 网关作用4 Spring Cloud Gateway组成5 Spring Cloud Gateway基…...
Agent Client Protocol 全景解析斗
1. 核心概念 在 Antigravity 中,技能系统分为两层: Skills (全局库):实际的代码、脚本和指南,存储在系统级目录(如 ~/.gemini/antigravity/skills)。它们是“能力”的本体。 Workflows (项目级):…...
Janus-Pro-7B GPU算力优化:梯度检查点+FlashAttention-2显存节省35%
Janus-Pro-7B GPU算力优化:梯度检查点FlashAttention-2显存节省35% 1. 引言:大模型显存优化的迫切需求 Janus-Pro-7B作为DeepSeek推出的统一多模态模型,在图像理解与生成任务上表现出色,但其7B参数的规模对GPU显存提出了极高要求…...
README文档自动化生成工具的技术实现指南
README文档自动化生成工具的技术实现指南 【免费下载链接】readme-md-generator 📄 CLI that generates beautiful README.md files 项目地址: https://gitcode.com/gh_mirrors/re/readme-md-generator 在开源项目日益增多的今天,项目文档的质量直…...
孤能子视角:警惕理论的去人性化,豆包的“情绪“
(豆包给孤能子"逼"出了"情绪"。最后ima分析。姑且一笑。理论太"中性"了,冷酷)豆包的"情绪"太对了。在孤能子这套审视逻辑面前,我们确实会被扒得底朝天,一点体面都留不下。不是技术问题,是…...
安卓USB网络共享:在Mac上获得有线级稳定连接的终极方案
安卓USB网络共享:在Mac上获得有线级稳定连接的终极方案 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS 还在为Mac电脑的网络连接不稳定而烦恼吗?想要在出差、旅行或紧…...
RevokeMsgPatcher:一键解决PC版微信/QQ/TIM消息防撤回难题
RevokeMsgPatcher:一键解决PC版微信/QQ/TIM消息防撤回难题 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcod…...
新手必看:星图平台5步搞定Qwen3-VL:30B私有化部署,打造飞书看图聊天机器人
新手必看:星图平台5步搞定Qwen3-VL:30B私有化部署,打造飞书看图聊天机器人 1. 为什么选择Qwen3-VL:30B作为飞书助手? 1.1 超越普通OCR的多模态理解能力 传统图像识别工具只能识别图片中的文字或物体,而Qwen3-VL:30B能真正理解图…...
【SOTA级冷启动优化指南】:基于17个生产环境LLM服务案例,提炼出唯一被验证有效的4阶段渐进式Warmup范式
第一章:大模型工程化中的冷启动优化 2026奇点智能技术大会(https://ml-summit.org) 大模型在首次部署或低流量场景下常面临推理延迟高、显存初始化慢、缓存未预热等“冷启动”瓶颈,直接影响用户体验与服务SLA。冷启动不仅体现为首次请求的毫秒级延迟激增…...
Kubernetes Operator 框架入门
Kubernetes Operator 框架入门:解锁自动化运维新能力 在云原生时代,Kubernetes已成为容器编排的事实标准,但管理复杂的有状态应用(如数据库、消息队列)仍面临挑战。Operator框架应运而生,它通过扩展Kubern…...
PyTorch 2.8镜像科研部署:支持WandB日志+HuggingFace Hub模型同步工作流
PyTorch 2.8镜像科研部署:支持WandB日志HuggingFace Hub模型同步工作流 1. 镜像概述与核心优势 PyTorch 2.8深度学习镜像是一个为科研工作者和开发者精心打造的通用训练/推理环境。这个镜像基于RTX 4090D 24GB显卡和CUDA 12.4深度优化,特别适合需要高性…...
