使用python的pandas库读取csv文件保存至mysql数据库

yizhihongxing

使用Python的pandas库读取CSV文件并保存至MySQL数据库需要经历以下步骤:

1. 安装依赖

在开始之前,需要先安装相关依赖库,包括pandas和MySQLdb。可以通过以下命令进行安装:

pip install pandas
pip install MySQL-python

2. 导入依赖

在Python脚本中导入需要使用的依赖库:

import pandas as pd
import MySQLdb

3. 读取CSV文件

使用pandas库中的read_csv方法读取CSV文件,将其存储在一个pandas的dataframe对象中:

data = pd.read_csv('filename.csv')

其中,filename.csv为待读取的CSV文件路径。

4. 连接MySQL数据库

使用MySQLdb库连接MySQL数据库:

db = MySQLdb.connect('host', 'username', 'password', 'database', charset='utf8')

其中,host为MySQL服务器的地址,usernamepassword为登录MySQL所需的用户名和密码,database为要连接的数据库名称,charset为字符集设置,这里使用的是UTF-8字符集。

5. 创建MySQL游标

使用创建的数据库连接创建MySQL游标:

cursor = db.cursor()

6. 创建数据表

使用游标创建数据表。在这个例子中,我们将CSV文件的第一行作为数据表的列名。

cols = ','.join(list(data.columns))
table_name = 'table_name'

create_table_query = "CREATE TABLE {} ({})".format(table_name, cols)
cursor.execute(create_table_query)

其中,table_name为要创建的数据表名称。

7. 将CSV数据写入MySQL数据库

使用for循环将dataframe中的数据逐行写入MySQL数据库:

for i,row in data.iterrows():
    values = ','.join(['"' + str(x) + '"' for x in row])
    insert_query = "INSERT INTO {} ({}) VALUES ({})".format(table_name, cols, values)

    cursor.execute(insert_query)
    db.commit()

这个例子中,我们使用iterrows()方法将dataframe中的每一行转换成逐一可操作的元素。在每一次循环中,我们将所有元素用逗号拼接成一个字符串列表,用join方法将它们连接到查询语句的VALUES子句中。

8. 关闭数据库连接

在完成将CSV数据导入到MySQL数据库的操作后,使用以下代码关闭数据库连接:

cursor.close()
db.close()

至此,使用Python的pandas库读取CSV文件并保存至MySQL数据库的完整攻略完毕。

这里提供一个具体的示例:

示例1:使用pandas读取CSV文件并保存至MySQL数据库

我们先准备一个名为students.csv的示例数据。数据表结构如下:

student_id, name, age, gender, grade
1, Alice, 18, F, A
2, Bob, 17, M, B
3, Cindy, 19, F, A
4, David, 18, M, C

然后使用如下代码将CSV文件的数据导入到MySQL数据库:

import pandas as pd
import MySQLdb


# 读取CSV文件并存储到pandas的dataframe对象中
data = pd.read_csv('students.csv')

# 连接MySQL数据库
db = MySQLdb.connect('localhost', 'root', 'password', 'test', charset='utf8')

# 创建MySQL游标
cursor = db.cursor()

# 创建数据表
cols = ','.join(list(data.columns))
table_name = 'students'

create_table_query = "CREATE TABLE {} ({})".format(table_name, cols)
cursor.execute(create_table_query)

# 将CSV数据写入MySQL数据库
for i,row in data.iterrows():
    values = ','.join(['"' + str(x) + '"' for x in row])
    insert_query = "INSERT INTO {} ({}) VALUES ({})".format(table_name, cols, values)

    cursor.execute(insert_query)
    db.commit()

# 关闭数据库连接
cursor.close()
db.close()

以上代码将创建一个名为students的数据表,并将CSV文件中的数据导入到该数据表中。

示例2:使用pandas读取CSV文件中指定的列并保存至MySQL数据库

在某些情况下,我们可能只需要读取CSV文件中的部分列,并将其保存到MySQL数据库中。以下示例演示如何使用pandas库指定读取CSV文件中的列,并将其导入到MySQL数据库中。假设CSV文件中有四列数据,我们只需要读取前三列,可以按照以下方式进行:

import pandas as pd
import MySQLdb


# 读取CSV文件的指定列并存储到pandas的dataframe对象中
data = pd.read_csv('students.csv', usecols=['student_id', 'name', 'age'])

# 连接MySQL数据库
db = MySQLdb.connect('localhost', 'root', 'password', 'test', charset='utf8')

# 创建MySQL游标
cursor = db.cursor()

# 创建数据表
cols = ','.join(list(data.columns))
table_name = 'students'

create_table_query = "CREATE TABLE {} ({})".format(table_name, cols)
cursor.execute(create_table_query)

# 将CSV数据写入MySQL数据库
for i,row in data.iterrows():
    values = ','.join(['"' + str(x) + '"' for x in row])
    insert_query = "INSERT INTO {} ({}) VALUES ({})".format(table_name, cols, values)

    cursor.execute(insert_query)
    db.commit()

# 关闭数据库连接
cursor.close()
db.close()

以上代码中,我们指定了pandas的read_csv()方法的usecols参数,只读取student_idnameage这三列数据。接下来,我们将读取到的数据存储在名为students的数据表中。

这就是使用Python的pandas库读取CSV文件并保存至MySQL数据库的完整攻略,希望可以帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用python的pandas库读取csv文件保存至mysql数据库 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 详解Python命令行解析工具Argparse

    当你编写一个Python脚本时,它通常需要一些参数来提供上下文信息。例如,你可能需要指定文件路径,设置日志级别或指定输出格式。命令行参数是一种流行的方式来提供这些信息,但如果手工分析参数,则可能会变得非常棘手。因此,Python提供了Argparse模块来帮助我们通过解析命令行参数更加容易地获得所需信息。 Argparse简介 Argparse模块是Pyth…

    python 2023年5月18日
    00
  • 如何在 Python 中编写内联注释

    【问题标题】:How to write an inline-comment in Python如何在 Python 中编写内联注释 【发布时间】:2023-04-02 01:25:01 【问题描述】: Python中有没有结束单行cmets的方法? 类似 /* This is my comment */ some more code here… 【问题讨…

    Python开发 2023年4月8日
    00
  • 基于python实现计算且附带进度条代码实例

    下面是基于 Python 实现计算且附带进度条的完整攻略。 1. 文字说明 1.1 功能简介 本攻略将通过 Python 代码实现计算的功能,并添加进度条以改善用户体验。 1.2 实现思路 首先,我们需要安装进度条库 tqdm,可以通过以下命令在命令行中安装: pip install tqdm 然后,我们需要使用 Python 的循环语句进行计算,并在循环语…

    python 2023年6月3日
    00
  • Python学习之迭代器详解

    Python学习之迭代器详解 在Python中,迭代器(iterator)是一个非常重要的概念,它是许多高级功能和特性的基础,并且能够通过使用迭代器,更好地实现代码的可读性和代码的简洁性。本文将详细介绍什么是迭代器,如何创建一个迭代器,以及如何使用迭代器。 什么是迭代器? 迭代器是Python中的一个对象,它能够遍历(或迭代)对象的所有元素,而不需要事先知道…

    python 2023年5月14日
    00
  • 10行Python代码实现Web自动化管控的示例代码

    下面我会详细讲解如何用10行Python代码实现Web自动化管控,该攻略包含以下内容: 简介 环境准备 示例1:使用Selenium自动登录网站 示例2:使用Selenium自动填写表单 总结 1. 简介 Web自动化是指通过程序模拟用户在浏览器上进行的操作,以达到自动化测试、数据爬取和Web应用的自动化管控等目的。本文将演示如何使用Python来实现Web…

    python 2023年5月19日
    00
  • python多线程抓取天涯帖子内容示例

    Python是一门强大的编程语言,在进行Web爬虫开发时,多线程是我们常用的一种方式,因为它能够大幅度提高爬取速度。下面我将来详细讲解如何使用Python多线程来抓取天涯帖子内容,包括示例代码和说明。 天涯帖子内容抓取 要抓取天涯帖子的内容,我们可以使用requests和BeautifulSoup库来实现,抓取过程大致如下: 首先,我们需要确定天涯帖子的UR…

    python 2023年5月19日
    00
  • python获取程序执行文件路径的方法(推荐)

    获取程序执行文件路径是Python开发中很常见的需求。本文将介绍2种常用的Python获取程序执行文件路径的方法。 方法一:使用os模块的path属性 下面是一段使用os模块获取程序执行文件路径的Python代码: import os # 获取当前运行的py文件的文件名 print(__file__) # 获取当前运行的py文件所在的目录 print(os.…

    python 2023年6月2日
    00
  • 利用python实现PSO算法优化二元函数

    下面是详细讲解“利用Python实现PSO算法优化二元函数”的完整攻略。 PSO算法 粒子群优化算法(Particle Swarm Optimization,PSO)是一种基于群体智能的化算法,它模拟了鸟群捕食的行为,通过不断调整粒子的位置和速度来寻找最优解。 PSO法的基本思想是将待化问题看作一个多维空间中的搜索问题,将每个解看作空间中的一个粒子通过不断调…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部