使用 pandas 轻松插入数据库表 (pandas 插入数据库表)

在数据分析的过程中,使用 pandas 是必不可少的。pandas 提供了丰富的功能来处理和分析数据,其中一个比较实用的功能是将数据导入到数据库表中。本文将介绍如何使用 pandas 轻松地将数据插入到数据库表中。

一、准备数据库和数据

在本文中,我们将以 MySQL 数据库为例介绍将数据插入到数据库表中的方法。需要准备好 MySQL 数据库,并创建一个表用于存储数据。在这里,我们创建一个名为“employees”的表,用于存储员工信息。

CREATE TABLE employees (

emp_no INT NOT NULL,

birth_date DATE NOT NULL,

first_name VARCHAR(14) NOT NULL,

last_name VARCHAR(16) NOT NULL,

gender ENUM(‘M’,’F’) NOT NULL,

hire_date DATE NOT NULL,

PRIMARY KEY (emp_no)

);

接下来,准备一份包含员工信息的 CSV 文件,用于导入数据。在这里,我们使用的是经典的“Employees Sample Database”,该数据集包含了来自雇员数据库的完整数据。

二、连接数据库

在将数据插入到数据库表中之前,需要先连接到数据库。pandas 支持连接到多种数据库,包括 MySQL、SQLite、PostgreSQL 等。在这里,我们以 MySQL 为例进行介绍。

需要安装 MySQL 驱动程序。可以通过 pip 安装 mysql-connector-python 驱动程序。

pip install mysql-connector-python

接下来,使用以下代码连接到 MySQL 数据库。

import mysql.connector

mydb = mysql.connector.connect(

host=”localhost”,

user=”yourusername”,

password=”yourpassword”,

database=”yourdatabase”

)

cursor = mydb.cursor()

注:将“yourusername”、“yourpassword”和“yourdatabase”替换为您的 MySQL 用户名、密码和数据库名。

三、读取数据

在连接到数据库之后,需要读取数据并将其存储到 pandas 数据框中。可以使用 pandas 的 read_csv() 函数读取 CSV 文件,并存储为 pandas 数据框。

import pandas as pd

data = pd.read_csv(’employees.csv’)

四、数据清理和转换

在将数据插入到数据库中之前,可能需要对数据进行一些清理和转换。在这里,我们需要将数据转换为符合数据库表的格式。具体来说,我们需要进行以下操作:

– 将列名修改为数据库表的列名

– 将日期类型转换为 MySQL 的 DATE 类型

– 将字符串类型转换为 ENUM 类型

以下是代码示例:

# 将列名修改为数据库表的列名

data.rename(columns={’emp_no’: ‘EmployeeNumber’, ‘birth_date’: ‘BirthDate’, ‘first_name’: ‘FirstName’, ‘last_name’: ‘LastName’, ‘gender’: ‘Gender’, ‘hire_date’: ‘HireDate’}, inplace=True)

# 将日期类型转换为 MySQL 的 DATE 类型

data[‘BirthDate’] = pd.to_datetime(data[‘BirthDate’]).dt.strftime(‘%Y-%m-%d’)

data[‘HireDate’] = pd.to_datetime(data[‘HireDate’]).dt.strftime(‘%Y-%m-%d’)

# 将字符串类型转换为 ENUM 类型

data[‘Gender’] = data[‘Gender’].map({‘M’: ‘Male’, ‘F’: ‘Female’})

五、插入数据

现在,我们已经准备好了要插入表的数据,接下来需要将数据插入到数据库表中。可以使用 pandas 的 to_sql() 函数将数据插入到数据库表中。以下是代码示例:

table_name = ’employees’

data.to_sql(name=table_name, con=mydb, if_exists=’append’, index=False)

以上代码将数据插入到名为“employees”的表中。

六、检查数据

在将数据插入到数据库表中之后,最后一步是检查数据是否已成功插入。可以使用以下代码从数据库中读取数据,并将其存储为 pandas 数据框。

query = “SELECT * FROM employees”

cursor.execute(query)

data = pd.DataFrame(cursor.fetchall(), columns=[‘EmployeeNumber’, ‘BirthDate’, ‘FirstName’, ‘LastName’, ‘Gender’, ‘HireDate’])

print(data)

以上代码将从 database 表中检索数据,并将其存储为 pandas 数据框。我们可以使用 print() 函数检查结果是否正确。

七、

本文介绍了如何使用 pandas 轻松地将数据插入到 MySQL 数据库表中。通过连接数据库、读取数据、数据清理和转换以及插入数据等步骤,我们可以轻松地将数据插入到数据库中,并且可以轻松地检查数据是否已成功插入。pandas 提供了功能强大、易于使用的工具,使得数据分析和数据处理变得更加容易。如果您正在使用 pandas 进行数据分析,那么将数据导入到数据库表中可能是非常实用的一种技能。

相关问题拓展阅读:

  • python pandas to_sql将excel数据导入到MySQL数据库

python pandas to_sql将excel数据导入到MySQL数据库

其实吧, 一分钟10W条数据不能算太快,10秒10W条还差不多。 可以研究一下线程+进程来处理, 或者协程+进程。处理速度肯定能让你喊一声“!” 哈哈。

言归正传, 你说的别的MySQL是不是远程的,通过ip来连接的哈, 如果是的话那就可以理解了。 每次连接一次数据库,都有一个网络延迟的,2台电脑之间距离越远,这个延迟就越高,而每次导入数据的时间必须要加上这个延迟的时间的, 而本地测试的时候因为连接数据库的时间延迟基本可以忽略不计,所以速度要比连接远程数据库要快很多很多。

最后, 如果想要解决这个问题的话,要么把业务数据库移到本地,去掉时间延迟。 要么就用我上面说的线程+进程 或者 协程+进扮陵竖程的方式提高程序效率。如果无法把业务数据厅大库移到本地的话, 我非常推荐后者,成本也就是多学一点东西而已, 但以后可以省下非常多的时间汪坦, 效率为王嘛~

关于pandas 插入数据库表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/245915.html<

(0)
管理的头像管理
上一篇2025-04-26 10:02
下一篇 2025-04-26 10:03

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注