超大csv文件导入mysql数据库_将大csv文件导入mysql数据库

本文介绍了如何通过pandas读取大csv文件并利用pymysql将其批量高效地导入到MySQL数据库。通过将数据分批处理,每批10000条,提高了数据导入的效率。
摘要由CSDN通过智能技术生成

dc25a6aed567a1f78fbd189afc43525a.png

将大csv文件导入mysql数据库

777c8e816b6557f9a4465094945e06cc.png

我这边是利用pandas和pymysql来实现将csv文件导入到MySQL数据库的

首先说一下实现逻辑,就是将csv读取到dataframe中,然后把按行读取数据,将每行的数据添加到列表中,在利用pymysql这个包将数据添加到数据库。

代码如下:

import pandas as pd

import pymysql

#读取数据

test = pd.read_csv(r’Antai_AE_round1_item_attr_20190626/Antai_AE_round1_item_attr_20190626.csv’)

test.head()

#连接数据库

db = pymysql.connect(host=”IP地址”,user=”数据库用户名”, passwd=”密码”,db=”要连接的数据库”,charset=’utf8′)

#定义操作函数

def insert_deta():

list1 = []

num = 0

cursor = db.cursor()

for i in range(0,test.shape[0]): # 利用shape的第一个元素来获取数据的数量

row_data = test.iloc[i] # 获取第每行数据

value = (str(row_data[0]),str(row_data[1]),str(row_data[2]),str(row_data[3])) #读取第每行中每列数据,由于数据库添加使用的都是字符串形式添加故都取str

list1.append(value)

num +=1

if num==10000:

sql = “INSERT INTO item(item_id,cate_id,store_id,item_price)VALUES(%s,%s,%s,%s)”

cursor.executemany(sql, list1) # 执行sql语句

db.commit()

num = 0 # 计数归零

list1.clear() # 清空list

cursor.close() # 关闭连接

db.close()

#执行函数

insert_deta()

其中需要说明的是,要实现上述操作,需要先在数据库建好你要导入的那张表。其次我对代码进行了一定的优化,因为添加到数据库是一个耗时操作,所以我利用executemany方法将数据以每10000条来添加到数据库,提高效率。

———————

作者:锲启

来源:CSDN

原文:https://blog.csdn.net/weixin_44166997/article/details/94736499

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值