Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库
如何将Excel数据插入到MySQL数据库中
在实际应用中,我们可能需要将Excel表格中的数据导入到MySQL数据库中,以便于进行进一步的数据分析和处理。本文将介绍如何使用Python将Excel表格中的数据插入到MySQL数据库中。
导入必要的库
首先,我们需要导入pandas库和MySQL Connector/Python库,以便于读取Excel文件和连接MySQL数据库。
import pandas as pd # 导入pandas库,用于读取Excel文件和处理数据 import mysql.connector # 导入MySQL Connector/Python库,用于连接MySQL数据库
连接数据库
接下来,我们需要连接MySQL数据库。可以通过MySQL Connector/Python库提供的connect()方法来连接数据库。
# 连接数据库 mydb = mysql.connector.connect(host=host, # 数据库主机地址user=user, # 数据库用户名password=password, # 数据库密码database=database # 数据库名称 )
其中,host、user、password和database分别是数据库主机地址、数据库用户名、数据库密码和数据库名称,需要根据实际情况进行修改。
创建游标对象
连接成功后,我们需要创建游标对象。可以通过MySQL Connector/Python库提供的cursor()方法来创建游标对象。
# 创建游标对象 mycursor = mydb.cursor()
读取Excel文件
接下来,我们需要读取Excel文件中的数据。可以使用pandas库提供的read_excel()方法来读取Excel文件。
# 读取Excel文件 df = pd.read_excel(filename)
其中,filename是Excel文件的路径,需要根据实际情况进行修改。
将日期时间类型的列转换为字符串类型
在将数据插入到MySQL数据库中之前,我们需要将日期时间类型的列转换为字符串类型。可以通过遍历DataFrame中的每一列,并判断该列的数据类型是否为日期时间类型,然后将该列的数据类型转换为字符串类型。
# 将日期时间类型的列转换为字符串类型 for col in df.columns: # 遍历DataFrame中的每一列if df[col].dtype == 'datetime64[ns]': # 如果该列的数据类型是日期时间类型df[col] = df[col].astype(str) # 将该列的数据类型转换为字符串类型
遍历Excel表格中的每一行,并将每一行插入到数据库中
接下来,我们需要遍历Excel表格中的每一行,并将每一行插入到数据库中。可以使用pandas库提供的itertuples()方法来遍历DataFrame中的每一行,并使用MySQL Connector/Python库提供的execute()方法来执行SQL插入语句。
# 遍历Excel表格中的每一行,并将每一行插入到数据库中
for row in df.itertuples(index=False): # 遍历DataFrame中的每一行sql = f"INSERT INTO {table} (id, 姓名, 国家, 出生日期) VALUES (%s, %s, %s, %s)" # SQL插入语句val = row # 插入的数据mycursor.execute(sql, val) # 执行SQL插入语句print("正在插入数据:", val) # 输出正在插入的数据
其中,table是数据库表名,需要根据实际情况进行修改。
提交更改并关闭数据库连接
最后,我们需要提交更改并关闭数据库连接。可以使用MySQL Connector/Python库提供的commit()方法来提交更改,并使用close()方法来关闭游标对象和数据库连接。
# 提交更改并关闭数据库连接 mydb.commit() # 提交更改 mycursor.close() # 关闭游标对象 mydb.close() # 关闭数据库连接
完整代码如下:
import pandas as pd # 导入pandas库,用于读取Excel文件和处理数据
import mysql.connector # 导入MySQL Connector/Python库,用于连接MySQL数据库def insert_excel_data_to_mysql(filename, host, user, password, database, table):# 连接数据库mydb = mysql.connector.connect(host=host, # 数据库主机地址user=user, # 数据库用户名password=password, # 数据库密码database=database # 数据库名称)# 创建游标对象mycursor = mydb.cursor()# 读取Excel文件df = pd.read_excel(filename)# 将日期时间类型的列转换为字符串类型for col in df.columns: # 遍历DataFrame中的每一列if df[col].dtype == 'datetime64[ns]': # 如果该列的数据类型是日期时间类型df[col] = df[col].astype(str) # 将该列的数据类型转换为字符串类型# 遍历Excel表格中的每一行,并将每一行插入到数据库中for row in df.itertuples(index=False): # 遍历DataFrame中的每一行sql = f"INSERT INTO {table} (id, 姓名, 国家, 出生日期) VALUES (%s, %s, %s, %s)" # SQL插入语句val = row # 插入的数据mycursor.execute(sql, val) # 执行SQL插入语句print("正在插入数据:", val) # 输出正在插入的数据# 提交更改并关闭数据库连接mydb.commit() # 提交更改mycursor.close() # 关闭游标对象mydb.close() # 关闭数据库连接# 使用示例
filename = r'C:\\Users\\Admin\\Desktop\\重新开始\\Python操作MySQL数据库\\sheet1.xlsx' # Excel文件路径
host = "localhost" # 数据库主机地址
user = "root" # 数据库用户名
password = "123456" # 数据库密码
database = "caiwu" # 数据库名称
table = "yonghu" # 数据库表名insert_excel_data_to_mysql(filename, host, user, password, database, table) # 调用函数,将Excel数据插入到MySQL数据库中相关文章:
Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库
如何将Excel数据插入到MySQL数据库中 在实际应用中,我们可能需要将Excel表格中的数据导入到MySQL数据库中,以便于进行进一步的数据分析和处理。本文将介绍如何使用Python将Excel表格中的数据插入到MySQL数据库中。 导入必要的库 首先,我们…...
Stable Diffusion训练图片时,简陋的数据处理
0 图片从命名 如果有强迫症,看到似乎乱码的命名会不舒服,那么就批量从命名 import osdef rename_files_in_directory(directory, key_word, new_suffix):i 1for filename in os.listdir(directory):new_file key_word str(i).zfill(3) new_suffixsou…...
如何在ubuntu 18.04中升级python 3.6到3.7
在ubuntu下安装python 3.7有两种方法: 1,通过使用Deadsnakes PPA中的标准apt工具(本文暂时只介绍这种方法) 2,从源代码进行构建。 前提条件: 需要以root用户或具有sudo访问权限的用户身份登录才能在Ubuntu系统上安装软件包。 方法一:使用apt工具安装…...
python爬虫基础实验:通过DBLP数据库获取数据挖掘顶会KDD在2023年的论文收录和相关作者信息
Task1 读取网站主页整个页面的 html 内容并解码为文本串(可使用urllib.request的相应方法),将其以UTF-8编码格式写入page.txt文件。 Code1 import urllib.requestwith urllib.request.urlopen(https://dblp.dagstuhl.de/db/conf/kdd/kdd202…...
简单记录一次帮维修手机经历(Vivo x9)
简介 手边有一台朋友亲戚之前坏掉的Vivo X9手机, 一直说要我帮忙修理一下, 我一直是拒绝的, 因为搞程序的不等于维修的(会电脑不等于维修电器),不知道这种思路如何根深蒂固的,不过好吧ÿ…...
ap聚类是什么
AP聚类(Affinity Propagation clustering)是一种聚类算法,它基于数据点之间的相似度进行聚类。AP聚类算法无需预先指定簇的数量,而是根据数据点之间的相似性动态地确定簇的个数和分配情况。 AP聚类的核心思想是通过迭代计算数据点…...
C数据类型(C语言)---变量的类型决定了什么?
目录 数据类型(Data Type) 变量的类型决定了什么? (1)不同类型数据占用的内存大小不同 如何计算变量或类型占内存的大小 (2)不同数据类型的表数范围不同 (3)不同类型…...
axios、axios二次封装、api解耦
import axios from axios// 环境的切换切换测试与生产环境 if (process.env.NODE_ENV development) { axios.defaults.baseURL /api; } else if (process.env.NODE_ENV debug) { axios.defaults.baseURL ; } else if (process.env.NODE_ENV production) { axios.…...
HTML 特殊元素:展示PDF、展示JSON 数据
<pre> 标签 (preformatted text) <pre> 标签用来表示预格式化的文本内容 在页面数据展示时,后端返回了一段未经处理的JSON 数据,将这段数据在页面正常展示,让可读性更高。 {/"project": {/ "title": "…...
算法·动态规划Dynamic Programming
很多人听到动态规划或者什么dp数组了,或者是做到一道关于动态规划的题目时,就会有一种他很难且不好解决的恐惧心理,但是如果我们从基础的题目开始深入挖掘动规思想,在后边遇到动态规划的难题时就迎难而解了。 其实不然ÿ…...
鸿蒙Harmony应用开发—ArkTS-转场动画(共享元素转场)
当路由进行切换时,可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 属性 名称参数参数描述…...
【C语言】循环语句(语句使用建议)
文章目录 **while循环****while循环的实践****补充:if语句与while语句区别****for循环(使用频率最高)****for循环的实践****while循环和for循环的对比****Do-while循环****break和continue语句****循环的嵌套****goto语句(不常用)****循环语句的效率(来自于高质量的C/C编程书籍…...
Spring Data访问Elasticsearch----响应式Reactive存储库
Spring Data访问Elasticsearch----响应式Reactive存储库 一、用法二、配置 Reactive Elasticsearch存储库支持建立在存储库中解释的核心存储库支持之上,利用由 Reactive REST客户端执行的 Reactive Elasticsearch Operations提供的操作。 Spring Data Elasticsear…...
堆排序(c语言)
文章目录 前言一.什么是堆二.向下调整算法三.堆排序的创建总结 前言 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于&#x…...
开源IT自动化运维工具Ansible解析
Ansible 是一款开源的 IT 自动化工具,用于简化应用程序部署、配置管理、持续集成、基础设施即代码(Infrastructure as Code, IaC)和服务编排。它由 Michael DeHaan 创建,并在2012年首次发布,到2015年被红帽公司&#x…...
【C++】仿函数优先级队列反向迭代器
目录 一、优先级队列 1、priority_queue 的介绍 2、priority_queue 的使用 3、 priority_queue 的模拟实现 1)priority_queue()/priority_queue(first, last) 2)push(x) 3)pop() 4&#…...
UE4_调试工具_绘制调试球体
学习笔记,仅供参考! 效果: 步骤: 睁开眼睛就是该变量在此蓝图的实例上可公开编辑。 勾选效果:...
机器人路径规划:基于冠豪猪优化算法(Crested Porcupine Optimizer,CPO)的机器人路径规划(提供MATLAB代码)
一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…...
探索.NET中的定时器:选择最适合你的应用场景
概述:.NET提供多种定时器,如 System.Windows.Forms.Timer适用于UI,System.Web.UI.Timer用于Web,System.Diagnostics.Timer用于性能监控,System.Threading.Timer和System.Timers.Timer用于一般定时任务。在.NET 6及以上…...
5467: 【搜索】流浪奶牛
题目描述 吃不到饭的奶牛Bessie一气之下决定离开农场,前往阿尔费茨山脉脚底下的农场(听说那儿的草极其美味)投靠她的亲戚Jimmy。但是前往目的地的山路崎岖,Bessie又没有吃饭,她需要尽量保存体力,以最轻松的…...
VibeVoice Pro中小企业部署案例:CRM系统嵌入式语音播报模块
VibeVoice Pro中小企业部署案例:CRM系统嵌入式语音播报模块 1. 引言:当CRM系统“开口说话” 想象一下这个场景:一位销售经理正盯着电脑屏幕,快速浏览着密密麻麻的客户跟进列表。他需要筛选出今天需要电话回访的客户,…...
RexUniNLU RexPrompt技术解析:显式图式指导器如何缓解零样本任务歧义性
RexUniNLU RexPrompt技术解析:显式图式指导器如何缓解零样本任务歧义性 1. 引言:当AI面对“未知”任务时 想象一下,你拿到一个全新的文本处理任务,比如从一段新闻里找出所有“人物”和“组织机构”,但之前没人告诉过…...
别再只用yum了!CentOS 7上源码编译安装Tinyproxy 1.11.1,开启账号密码验证(附一键脚本)
从源码到安全代理:CentOS 7深度部署Tinyproxy 1.11.1全指南 在Linux生态中,yum安装的便捷性往往掩盖了源码编译的价值。当我们需要特定功能、定制化路径或最新版本时,从源码构建才是真正的高手之道。今天要探讨的Tinyproxy 1.11.1正是一个典型…...
Python Selenium怎么定位元素_By.XPATH与By.CSS_SELECTOR操作DOM节点
XPath定位失败主因是路径脆弱、上下文变化或节点未就绪;应避免绝对路径,优先用CSS,动态内容需显式等待,iframe须先切换,复杂逻辑才用XPath。By.XPATH 定位失败的常见原因不是 XPath 写得不够“高级”,而是多…...
ZVS和ZCS到底怎么选?从无线充电到服务器电源,聊聊软开关技术的选型实战
ZVS与ZCS技术选型实战:从无线充电到服务器电源的高效设计指南 在追求极致效率的现代电源系统中,软开关技术早已从实验室走向量产。当我们拆解一款氮化镓快充、观察服务器机柜的电源模块,或是测试无线充电板的温升时,ZVS࿰…...
别再用Rule-based工具扫LLM生成代码了,SITS2026验证:传统SAST对Copilot产出漏洞检出率仅31.4%,这3个信号必须立即升级
第一章:SITS2026分享:AI代码安全扫描 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上,多家头部安全厂商与开源社区联合发布了新一代AI驱动的代码安全扫描框架——SentryLLM,该框架深度融合大语言模型语义理解能…...
React Native 中 Button 组件未定义的解决方案
在 React Native 项目中使用 Button 组件时出现 “Button is not defined” 错误,根本原因是 React Native 核心库已移除默认导出的 Button,需改用 TouchableOpacity Text 或显式导入 react-navigation/elements 中的按钮组件。 在 react native 项…...
拆解IGH EtherCAT主站应用层:信号、定时器与实时任务循环的协同工作原理
IGH EtherCAT主站应用层深度解析:信号、定时器与实时任务循环的协同机制 在工业自动化领域,EtherCAT以其卓越的实时性能和高效的通信机制成为主流现场总线协议之一。而IGH EtherCAT主站作为开源实现,其应用层设计巧妙融合了Linux系统编程与实…...
Gazebo Sim 开源机器人模拟器终极快速入门指南:5分钟开启机器人仿真之旅
Gazebo Sim 开源机器人模拟器终极快速入门指南:5分钟开启机器人仿真之旅 【免费下载链接】gz-sim Open source robotics simulator. The latest version of Gazebo. 项目地址: https://gitcode.com/gh_mirrors/gz/gz-sim Gazebo Sim 是一款功能强大的开源机器…...
OCR 识别不准确怎么办?模糊 / 倾斜 / 反光图片优化实战(附完整解决方案 + 代码示例)
在实际项目中(身份证识别、票据识别、文档解析等),很多开发者都会遇到一个问题: OCR 识别不准确,甚至识别失败,怎么办? 其实,大多数 OCR 识别效果差,并不是接口问题&…...
