python pandas dataFrame sqlAlchemy案例
python pandas、dataFramefrom sqlalchemy import create_engine,Engine,text,MetaData,Column,Table,Integer,String import pandas as pd #这是 导入 pandas 库并给它起了一个别名 pd。 from pandas import DataFrame from sqlalchemy.exc import OperationalError,ProgrammingError # 创建一次全局共享模拟 config 中的数据库配置 # mysqlpymysql://用户:密码主机:端口/数据库名 engine: Engine create_engine( mysqlpymysql://root:root127.0.0.1:3306/fastapi, pool_size5, # 连接池大小 max_overflow10, # 超出 pool_size 后最多再创建 10 个连接 pool_pre_pingTrue, # 每次从池取连接前先 ping 一下避免拿到断开的连接 echoTrue, # 设为 True 可打印所有 SQL方便调试 ) pandas 是 Python 最流行的数据处理库专门用来处理表格型数据类似 Excel 表格。 as pd 是别名之后用 pd 代替 pandas 写起来更短 DataFrame 是什么 DataFrame 表格可以理解为 Excel 中的一个 sheet 或数据库中的一张表。 id comment user_name like_count 1 张三的评论 张三 2 2 李四的评论 李四 5 3 王五的评论 王五 0 df.columns # 获取列名列表 df.to_dict() # 转为字典 df.to_sql() # 写入数据库 pd.read_sql() # 从数据库读取 df.head() # 看前几行 pandas.dataFrame.to_sql(table_name,engine,if_exists) # 写入数据库 table_name 目标数据库表名 字符串 engine SQLAlchemy 引擎 连接数据库的 engine 对象 if_exists 表已存在时的行为 fail / replace / append index 是否把 DataFrame 的行索引也写入数据库 True / False if_exists 三种模式 fail 表已存在 → 抛出异常 创建新表时用表存在说明有冲突 replace 表已存在 → 删掉重建再写入数据 覆盖全量数据 append 表已存在 → 追加数据 增量写入 三种取值完整说明 1. if_existsfail默认值 逻辑如果数据表已存在直接抛出异常 ValueError不执行任何写入操作 适用场景确认数据库不存在该表才写入防止误覆盖旧数据 示例报错ValueError: Table xxx already exists. 2. if_existsreplace 逻辑先删除原有整张表重新创建空表再写入当前 DataFrame 全部数据 特点 原表结构、索引、约束全部清空重建 表结构完全由当前 df 的列名、数据类型决定 适用场景全量更新每次覆盖整张表数据 3. if_existsappend 逻辑保留原有表结构和历史数据仅把当前 DataFrame 的数据追加到表末尾 强制要求否则报错 DataFrame 列名、列数量必须和数据库现有表完全一致 数据类型尽量匹配否则数据库会报类型错误 适用场景增量写入、日志流水、每日新增数据入库 def run_demo(): # 表的容器 meta MetaData() # Table()包裹表结构 table1 Table( t_department, meta, # 表名 所属表容器 Meta # 下面是字段定义 Column(id, Integer, primary_keyTrue,autoincrementTrue), # 主键 Column(name, String(200), nullableTrue), Column(department, String(200), nullableTrue), Column(salary, Integer, nullableTrue), ) meta.create_all(engine,tables[table1]) #append 追加写入 # ---- 准备数据 ---- dataFrame pd.DataFrame({ name: [Alice, Bob, Charlie], department: [Engineering, Sales, Engineering], salary: [50000, 60000, 70000], }) #append 追加写入数据 #dataFrame.to_sql(namet_department, conengine, if_existsappend, indexFalse) #fail表存在则报错抛出ValueError错误 # try: # dataFrame.to_sql(namet_department, conengine, if_existsfail, indexFalse) # except ValueError as e: # #ValueError # print(表已存在,,type(e)) #ValueError #replace模式 先drop t_department 再见表, 字符串是text数字是bigint , indexTrue会多生成一列indexbigint但这个表没有主键 dataFrame.to_sql(namet_department, conengine, if_existsreplace, indexFalse) pandas读数据非dataFrame读数据 dataList pd.read_sql(select * from t_department, conengine) 返回值类型是DataFrame print(type(dataList)) dataFrame转python类型支持3种 DataFrame.to_dict(prient records / list / dict) records [{列名: 值}, ...] 每条记录一个字典 [{name: Alice, ...}, {name: Bob, ...}] list {列名: [值列表]} 每列一个列表 {name: [Alice, Bob], salary: [50000, 60000]} dict默认 {列名: {行索引: 值}} {name: {0: Alice, 1: Bob}} 最常用的是 orientrecords直接得到一个列表每个元素是一条记录的字典。 # 转为字典 #[{name: Alice, department: Engineering, salary: 50000}, {name: Bob, department: Sales, salary: 60000}, {name: Charlie, department: Engineering, salary: 70000}] data_dict dataList.to_dict(orientrecords) print(data_dict) if __name__ __main__: run_demo()

相关新闻

全功能在线认证考试平台解决方案:解密传统认证四大核心痛点

全功能在线认证考试平台解决方案:解密传统认证四大核心痛点

在传统考试认证模式面临着功能分散、信息孤岛、作弊风险、证书管理低效等问题,已成为制约教育机构、企业及行业协会提升认证效率与公信力的关键瓶颈。考试云(kaoshiyun)作为一站式认证考试平台,以“学、练、考、证”全流程智能化为…

2026/10/20 10:46:56 阅读更多 →
利用checkm8漏洞绕过iOS激活锁:applera1n工具原理与实操详解

利用checkm8漏洞绕过iOS激活锁:applera1n工具原理与实操详解

1. 项目概述:当你的iPhone变成“砖头”手里拿着一台亮着激活锁界面的iPhone,那种感觉就像你买了个新房子,钥匙却在前任房东手里。屏幕上那个“激活锁”的提示,对于捡来的、二手的或者忘记Apple ID密码的设备来说,无异于…

2026/10/20 0:12:54 阅读更多 →
ROS2函数编程实战:从回调机制到性能优化

ROS2函数编程实战:从回调机制到性能优化

1. ROS2函数基础:从入门到实战在机器人操作系统(ROS2)的开发中,函数是最基础也是最重要的编程元素之一。不同于ROS1,ROS2采用了现代化的DDS通信机制,但函数作为代码组织的基本单元,其重要性丝毫未减。本文将带你深入理…

2026/10/18 22:58:48 阅读更多 →

最新新闻

Django+Vue宠物商店实战:库存原子扣减、订单状态机与RBAC权限落地

Django+Vue宠物商店实战:库存原子扣减、订单状态机与RBAC权限落地

简介:这是一套基于PythonDjangoVue.js全栈技术实现的宠物商店管理系统源码,专为计算机相关专业本科生毕业设计与课程设计打造,已通过导师审核并获98.5分高分评价,适用于毕设选题参考、项目实战训练及期末大作业开发。资源包共396个…

2026/10/20 10:46:38 阅读更多 →
零基础本地部署DeepSeek-R1:Ollama三步跑通与强化学习原理解析

零基础本地部署DeepSeek-R1:Ollama三步跑通与强化学习原理解析

简介:这份PDF图解资料面向大模型初学者、技术爱好者及希望本地部署应用的研发人员,系统讲解DeepSeek大模型的本地部署方法与核心技术原理。内容从本地部署的三个实操步骤切入,逐步展开LLM基础概念、Transformer架构、预训练、监督微调与强化学…

2026/10/20 10:46:38 阅读更多 →
交通标志检测实战:YOLO数据体检与训练避坑指南

交通标志检测实战:YOLO数据体检与训练避坑指南

简介:面向交通标志检测与目标检测模型训练的数据资源包,包含约7000张已标注图像数据和YOLO标签文件,覆盖红绿灯等12个目标类别,并完成7:3训练集与验证集划分,可直接用于YOLOv5、YOLOv8等常见检测框架的模型训练与精度评…

2026/10/20 10:46:38 阅读更多 →
用C/C++写一份“无毒”表白代码:从控制台动画到Windows图形窗口

用C/C++写一份“无毒”表白代码:从控制台动画到Windows图形窗口

简介:使用C语言(含C写法)实现的控制台表白小项目,面向编程初学者、嵌入式/系统开发入门者,以及想用代码制造浪漫的同学;它以极简源码演示了如何用循环、延时、屏幕输出来生成动态文字和闪烁效果&#xff0c…

2026/10/20 10:46:38 阅读更多 →
汽车电动助力转向EPS系统建模仿真、二自由度+上下转向柱等、附参考文献

汽车电动助力转向EPS系统建模仿真、二自由度+上下转向柱等、附参考文献

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…

2026/10/20 10:46:38 阅读更多 →
ZooKeeper Java API 实战:节点CRUD、监听与权限控制

ZooKeeper Java API 实战:节点CRUD、监听与权限控制

之前维护某个调度系统时,ZooKeeper 几乎撑起了所有核心链路——分布式锁、任务节点注册、配置下发,哪一环离了它都容易出事。当时最头疼的反而不是 ZK 集群本身,而是原生 Java API 那套写起来别扭的姿势:Session 状态要自己盯、Wa…

2026/10/20 10:45:37 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →