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

使用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中splitlines()方法的使用简介

    Python中的splitlines()方法是用于字符串切分的函数,可以将一个字符串按照行分隔符(如’\n’)来拆分成多个子字符串,并将它们存储在一个列表中。下面就是详细的攻略: 标题 1. splitlines()方法的基本语法 在Python中,splitlines()方法是定义在字符串对象上的一个内置方法,其基本语法如下: str.splitlines…

    python 2023年6月3日
    00
  • Python 经典算法100及解析(小结)

    下面是关于“Python经典算法100及解析(小结)”的完整攻略。 1. 算法100题概述 Python经典算法100题是一系列经典的算法题目,涵盖了排序找、字符串、数组、链表、树等多个领域。这些题目旨在帮助Python开发者提高算法能力,掌握用的算法思想和技巧。 2. 算法100题解析 下面是对算法100题的解析,包括题目描述、解题思路和代码实现。 2.1…

    python 2023年5月13日
    00
  • 实例详解Python模块decimal

    实例详解Python模块decimal Python中提供了一个decimal模块,用于高精度计算,该模块允许我们以固定精度进行数学运算,并保留小数点的位置。 安装decimal模块 decimal模块是Python的标准库,在安装Python时就已经包含了。 使用decimal模块 使用decimal模块分为三个主要步骤:设置精度、创建decimal对象、…

    python 2023年6月3日
    00
  • Python调用两个机器人聊天的实战

    本文将详细讲解如何用 Python 调用两个机器人进行聊天的实战攻略。 简介 现在机器人应用越来越广泛,然而如何调用两个机器人进行对话,却是一个比较有趣的话题。本文将介绍通过 Python 调用两个机器人进行聊天的实现方法。 实现方式 准备工作 在开始操作之前,我们需要安装一些必要的 Python 库: pip install requests 获取机器人的…

    python 2023年5月19日
    00
  • python使用bs4爬取boss直聘静态页面

    在本攻略中,我们将介绍如何使用Python的BeautifulSoup库爬取BOSS直聘的静态页面。我们将提供两个示例,演示如何使用BeautifulSoup库提取职位信息和公司信息。 步骤1:获取页面内容 在开始之前,我们需要获取目标页面的内容。我们可以使用Python的requests库来获取页面内容。在本攻略中,我们将使用requests库来获取页面内…

    python 2023年5月15日
    00
  • Python爬虫抓取论坛关键字过程解析

    Python爬虫抓取论坛关键字过程解析 简介 爬虫是指在互联网上模拟人的行为,自动化获取网页信息的程序。Python是一门著名的编程语言,具有易学易用的特点,同时也具备着强大的爬虫库和生态系统,使其成为了数据挖掘领域中的主要语言之一。本文将详细讲解如何使用Python实现论坛关键字的抓取过程。 环境要求 Python 3.* requests库 Beauti…

    python 2023年5月14日
    00
  • Python如何利用%操作符格式化字符串详解

    当我们需要将一些变量的值插入到字符串中时,可以使用%操作符来格式化字符串。这种方法使用起来很简单,但是需要注意语法。 基本语法 基本语法如下: "字符串%s" % 变量 其中,字符串中的%s表示一个占位符,它会在后续的操作中被变量替换。而%操作符后面的变量就是我们要插入的值。需要注意的是,如果变量有多个,需要将它们放在一个元组中,然后在%…

    python 2023年6月5日
    00
  • python中可以发生异常自动重试库retrying

    Retry是一个Python库,可以自动重试失败的操作,同时允许定制重试行为。本攻略将提供Retry库的详细讲解,说明如何在Python中使用Retry来处理异常并自动重试。 安装Retry 首先需要在命令行界面中使用pip安装Retry库: pip install retrying Retry的基本使用 Retry库的基本使用方法是使用”@retry”装饰…

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