python将dataframe数据导入MySQL

这篇具有很好参考价值的文章主要介绍了python将dataframe数据导入MySQL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mysql操作

创建数据库test和table

create database test;
CREATE TABLE car (文章ID int, 链接 VARCHAR(255), 标题 VARCHAR(255),
            发文机关 VARCHAR(255), 发文字号 VARCHAR(255), 来源 VARCHAR(255),
            主题分类 VARCHAR(255), 公文种类 VARCHAR(255), 文件内容 LONGBLOB )

python将dataframe数据导入MySQL,sql语言 sql server + mysql,python,mysql,adb

pymysql操作
  • python安装pymysql
  • pymysql连接数据库
connect = pymysql.connect(
            host=self.MYSQL_HOST,
            db=self.MYSQL_DB,
            port=3306,
            user=self.MYSQ_USER,
            passwd=self.MYSQL_PWD,
            charset='utf8',
            use_unicode=False
        )
  • 创建游标
cursor = connect.cursor()
  • 插入数据
def insert_mysql(self, data_json):
        """
        数据插入mysql
        :param data_json:
        :return:
        """
        sql = "insert into {}(文章ID,链接,标题,发文机关,发文字号,来源,主题分类,公文种类,文件内容) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)".format(mysql_table)
        try:
            self.cursor.execute(sql, (data_json['文章ID'], data_json['链接'], data_json['标题'],data_json['发文机关'],
                                      data_json['发文字号'],data_json['来源'],data_json['主题分类'],data_json['公文种类'],data_json['文件内容']))
            self.connect.commit()
            print('数据插入成功')
        except Exception as e:
            print('e= ', e)
            print('数据插入错误')
  • 完整代码
import pymysql
import pandas as pd
 
mysql_host = 'localhost'
mysql_db = 'test'
mysql_user = 'root'
mysql_pwd = 'root'
mysql_table = 'car'
 
class MYSQL:
    def __init__(self):
        # MySQL
        self.MYSQL_HOST = mysql_host
        self.MYSQL_DB = mysql_db
        self.MYSQ_USER = mysql_user
        self.MYSQL_PWD = mysql_pwd
        self.connect = pymysql.connect(
            host=self.MYSQL_HOST,
            db=self.MYSQL_DB,
            port=3306,
            user=self.MYSQ_USER,
            passwd=self.MYSQL_PWD,
            charset='utf8',
            use_unicode=False
        )
        print(self.connect)
        self.cursor = self.connect.cursor()

    def create_table(self):
        self.cursor.execute("""CREATE TABLE car (文章ID int, 链接 VARCHAR(255), 标题 VARCHAR(255),
            发文机关 VARCHAR(255), 发文字号 VARCHAR(255), 来源 VARCHAR(255),
            主题分类 VARCHAR(255), 公文种类 VARCHAR(255), 文件内容 LONGBLOB )""")
 
    def insert_mysql(self, data_json):
        """
        数据插入mysql
        :param data_json:
        :return:
        """
        sql = "insert into {}(文章ID,链接,标题,发文机关,发文字号,来源,主题分类,公文种类,文件内容) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)".format(mysql_table)
        try:
            self.cursor.execute(sql, (data_json['文章ID'], data_json['链接'], data_json['标题'],data_json['发文机关'],
                                      data_json['发文字号'],data_json['来源'],data_json['主题分类'],data_json['公文种类'],data_json['文件内容']))
            self.connect.commit()
            print('数据插入成功')
        except Exception as e:
            print('e= ', e)
            print('数据插入错误')
导入数据并启动
def main():
    mysql = MYSQL()
    df = pd.read_excel('汽车行业政策文本研究.xlsx')
    print(df.columns)
    # orient='records', 表示将DataFrame的数据转换成我想要的json格式
    data_json = df.to_dict(orient='records')
    
    for dt in data_json:
        print(dt)
        mysql.insert_mysql(dt)
 
if __name__ == '__main__':
    main()

python将dataframe数据导入MySQL,sql语言 sql server + mysql,python,mysql,adb

使用pandas导入MySQL
数据库连接引擎

‘mysql+pymysql://[user]:[pwd]@localhost:3306/[database]?charset=utf8’

import pymysql
from sqlalchemy import create_engine

pymysql.install_as_MySQLdb()
engine = create_engine('mysql+pymysql://root:root@localhost:3306/test?charset=utf8')   
使用to_sql方法
  • name : str
    Name of SQL table.
  • con : sqlalchemy.engine.(Engine or Connection) or sqlite3.Connection
  • schema : str, optional
    Specify the schema (if database flavor supports this). If None, use default schema.
  • if_exists : {‘fail’, ‘replace’, ‘append’}, default ‘fail’
    How to behave if the table already exists.
    • fail: Raise a ValueError.
    • replace: Drop the table before inserting new values.
    • append: Insert new values to the existing table.
  • index : bool, default True
    Write DataFrame index as a column. Uses index_label as the column name in the table.
  • index_label : str or sequence, default None
    Column label for index column(s). If None is given (default) and index is True, then the index names are used. A sequence should be given if the DataFrame uses MultiIndex.
  • chunksize : int, optional
    Specify the number of rows in each batch to be written at a time. By default, all rows will be written at once.
  • dtype : dict or scalar, optional
    Specifying the datatype for columns. If a dictionary is used, the keys should be the column names and the values should be the SQLAlchemy types or strings for the sqlite3 legacy mode. If a scalar is provided, it will be applied to all columns.
  • method : {None, ‘multi’, callable}, optional
    Controls the SQL insertion clause used:

Raises
ValueError
When the table already exists and if_exists is ‘fail’ (the default).

import pandas as pd
df = pd.read_excel('汽车行业政策文本研究.xlsx')

#将data写入数据库,如果表存在就替换,将data的index也写入数据表,写入字段名称为id_name
df.to_sql('qiche',con=engine,schema='test',chunksize=10000,index=False,if_exists='replace')
pandas读取sql
read_sql_table

pd.read_sql_table可以直接读取数据库的整个table

pd.read_sql_table('car',con=engine,schema='test')
read_sql_query

pd.read_sql_query通过执行sql_query来读取部分表格内容

#sql_query = 'select * from car;'
sql_query = 'select * from car where 公文种类 = "公告";'
df_read = pd.read_sql_query(sql_query, engine)
df_read

python将dataframe数据导入MySQL,sql语言 sql server + mysql,python,mysql,adb文章来源地址https://www.toymoban.com/news/detail-576594.html

到了这里,关于python将dataframe数据导入MySQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • #SQL常见错误信息表 mysql导入数据出错常见错误

    mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处,请大家指正。 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数

    2024年02月16日
    浏览(33)
  • Python导入Excel数据到MySQL数据库

    目录 一、所需库和模块 二、读取Excel文件并转换为pandas数据帧 三、建立与MySQL数据库的连接 四、将数据从pandas数据帧导入到MySQL数据库 五、示例代码 总结 在数据分析和处理过程中,将Excel文件导入到MySQL数据库是一种常见的需求。Excel是一种广泛使用的电子表格格式,可用于

    2024年01月17日
    浏览(39)
  • MySQL数据库基础(五):SQL语言讲解

    文章目录 SQL语言讲解 一、SQL概述 二、SQL语句分类 1、DDL 2、DML 3、DQL 4、DCL 三、SQL基本语法 1、SQL语句可以单行或多行书写,以分号结尾 2、可使用空格和缩进来增强语句的可读性 3、MySQL数据库的SQL语句不区分大小写,建议使用大写  4、可以使用单行与多行注释 四、总

    2024年02月19日
    浏览(44)
  • 【MySQL】——关系数据库标准语言SQL(大纲)

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年01月20日
    浏览(49)
  • Spark【Spark SQL(二)RDD转换DataFrame、Spark SQL读写数据库 】

    Saprk 提供了两种方法来实现从 RDD 转换得到 DataFrame: 利用反射机制推断 RDD 模式 使用编程方式定义 RDD 模式 下面使用到的数据 people.txt :         在利用反射机制推断 RDD 模式的过程时,需要先定义一个 case 类,因为只有 case 类才能被 Spark 隐式地转换为DataFrame对象。 注意

    2024年02月09日
    浏览(44)
  • Mysql-------SQL:DDL数据定义语言、DDM数据操作语言、DQL数据库查询语言、DQL数据控制语言

    SQL语言可以分为: DDL(Data Definition Language)语言:数据定义语言,用于 创建或更改数据库中的表、视图、索引等对象 DML(Data Manipulation Language)语言:数据操作语言,用来对 数据库表中的数据进行增删改查操作; DQL(Data Query Language)语言: 数据查询语言,用来查询数据库

    2024年02月13日
    浏览(60)
  • 使用R语言将矩阵数据转化为数据框(dataframe)

    使用R语言将矩阵数据转化为数据框(dataframe) 在R语言中,数据框(dataframe)是一种常用的数据结构,它类似于表格,可以存储不同类型的数据,并且每一列的数据类型可以不同。如果我们有一个矩阵数据,并且想要将其转化为数据框,可以使用 as.data.frame() 函数来实现这个

    2024年02月07日
    浏览(34)
  • 如何使用python实现简单爬取网页数据并导入MySQL中的数据库

    前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 PyMySQL 库与 MySQL 进行交互。 以下是一个简单的示例: 1.  安装所需库: ``` ``` 2.  导入所需库: ``` ``` 3.  建立数据库连接:

    2024年02月04日
    浏览(35)
  • mysql 超大 sql 文件导入过程

    最近遇到 2 个超大 sql 文件导入,好一通折腾 调优参数太多,文档都看不过来 找到这些参数也费劲, ubuntu 在 /etc/mysql/mysql.conf.d/mysqld.cnf 中找到这个链接 centos 7 在 /etc/my.cnf 中找到这个链接 官方调优文档 14.15 InnoDB Startup Options and System Variables 耐心去阅读文档中那么多参数,需要

    2024年02月12日
    浏览(27)
  • 【MySQL】:探秘主流关系型数据库管理系统及SQL语言

    🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 在现代信息技术领域中,数据库管理系统扮演着至关重要的角色。本文将介绍数据库、数据库管理系统和SQL等概念,并深入探讨主流的关系型数据库管理系统以及关系型数据库的数据模

    2024年01月20日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包