相关文章推荐
深沉的松鼠  ·  [Python] ...·  4 小时前    · 
这篇博客介绍了如何使用Python的pandas和pymysql库将CSV数据存入MySQL数据库。首先通过pandas读取CSV文件,然后利用sqlalchemy将数据存入数据库的user01表。接着,使用pymysql创建user02表,并分块处理CSV数据,逐条插入数据库。整个过程详细展示了Python操作MySQL数据库的方法。 摘要由CSDN通过智能技术生成

数据练习集

user_data.csv练习数据集 https://download.csdn.net/download/Hudas/85712209?spm=1001.2014.3001.5503 导入数据集

import pandas as pd
# 读取数据
data = pd.read_csv(r'C:\Users\HP\Desktop\user_data.csv')
# 1048575行记录,6列字段
data.shape # (1048575, 6)

1.利用Pandas sqlalchemy

import pandas as pd
from sqlalchemy import create_engine
# 创建数据库对象
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/test')
# 读取数据
data = pd.read_csv(r'C:\Users\HP\Desktop\user_data.csv')
# 将数据存入到Mysql数据库中的user01数据表中
data.to_sql('user01',engine,chunksize=100000,index=None)
print('存入成功!')

2.利用Python pymysql

PyMySQL是在Python3.x版本中用于连接Mysql服务器的一个库

注意: 引入 import pymysql 之前需要进行安装

CREATE TABLE `user02` ( `user_id` bigint(20) DEFAULT NULL, `item_id` bigint(20) DEFAULT NULL, `behavior_type` bigint(20) DEFAULT NULL, `user_geohash` text CHARACTER SET utf8 COLLATE utf8_general_ci, `item_category` bigint(20) DEFAULT NULL, `time` text CHARACTER SET utf8 COLLATE utf8_general_ci ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
import pandas as pd
import pymysql
# 设置数据库连接信息:ip地址、用户名、密码、数据库名、端口号、字符集
conn = pymysql.connect(
       host='127.0.0.1',
       user='root',
       passwd='123456',
       db='test', 
       port = 3306,
       charset="utf8")
# 分块处理
# 因为数据量庞大,所以设置每次只处理100000条数据
big_size = 100000
with pd.read_csv(r'C:\Users\HP\Desktop\user_data.csv',chunksize=big_size) as reader:
    for df in reader:
        datas = []
        print('处理:',len(df))
        for i ,j in df.iterrows():
            data = (j['user_id'],j['item_id'],j['behavior_type'],j['item_category'],j['time'])
            datas.append(data)
        _values = ",".join(['%s', ] * 5)
        # sql插入语句
        sql = """insert into user02(user_id,item_id,behavior_type,item_category,time) values(%s)""" % _values
        # 使用cursor()方法创建一个游标对象cursor
        cursor = conn.cursor()
        # 执行sql语句
        cursor.executemany(sql,datas)
        # 提交到数据库执行 
        conn.commit()
# 关闭数据库连接   
conn.close()
cursor.close()
print('存入成功!')

提示Tips: 使用connect()方法连接数据库时,额外设置字符集 charset=utf-8,可以防止插入中文时出错

扩展阅读资料

利用Python操作Mysql数据库 https://blog.csdn.net/Hudas/article/details/124255734

class ConnectionDatabase(object): # 连接 mysql 数据库 def __init__(self, ip, user_name, passwd, db, char='utf8'): self.ip = ip # self.port = port
python 实现将elasticsearch 读取 ,转为dataframe,并 写入 mysql 1、在使用create_engine(db_connect)部分,要进行 mysql 的modul的安装; 否则会报找不到 mysql 的错; from elasticsearch import Elasticsearch import pandas as pd from sqlalchemy import create_engine from urllib.parse import quote_plus
import time conn = MySQL db.connect(host='xx.xx.xx.xx', port=3306, db='test_for_performance', user='root', python 连接 mysql 还使用了不少时间...,相比php困难多了..麻烦的.. 而php,就容易的多兰.. python 标准库没 mysql 库,只好第三方兰.. 先看累挂..说 MySQL db...三,不行.. 1. MySQL db( MySQL - python 1.2.3)支持派森 python 2.7的直接windows安装包,用的pyth...
最近有一个往Excel文件中不同的工作簿 写入 大量 数据 的需求,如下图所示,有三个工作簿,每个工作簿中的 数据 量不同,向一个工作簿中 写入 数据 时需要将上一次 写入 数据 清空,且其它两个工作簿的 数据 不能清空。 网上大部分的教程都是一条一条的往里面 写入 ,这种效率太低,而且耗时太长。或者就是一次往一个工作簿 写入 数据 时,会将之前的全部 数据 覆盖,也不太符合要求。 下面是自己的实现方式 我使用的是openpyxl和 pandas 模块相结合使用的。在 写入 数据 时,首先会将 写入 数据 长度与Excel表中某一个工作簿中的 数据 长度进行对比
python 是一门开发语言,可以用来写大型项目,也可以用来写脚本,比如 自动 化脚本,也可以用来写工具。   我们平时做测试,不一定做 自动 化测试才用去 python ,做功能测试,也就是点点点,也可以把它用起来。   比如,我现在页面有一个功能,导入的功能,我想测它最大支持多少 数据 量导入,或者说多大的文件导入,那么我们得在excel中 写入 很多条 数据 (导入模板是xls,xl... 山茶花开时。: BAPI代表一种业务,我们可以通过浏览器查找对应的BAPI 例如我们想批量更改会计凭证摘要,在百度浏览器输入框中填写“SAP 会计凭证更改 BAPI ”,查询到对应的修改会计凭证BAPI (FI_DOCUMENT_CHANGE) 会计凭证的修改,我们必须告诉SAP :公司代码是什么,会计年度是什么,凭证号是什么 ,行项目是什么,新摘要是什么 [SAP ABAP] SMW0上传模板 山茶花开时。: 我们可以使用事务码SMW0上传Excel文件模板到SAP服务器上