Pandas批量读取csv文件数据存入到Mysql中

尝试将一个100多兆的csv文件中的数据放到Mysql数据中,直接用pandas的read_csv()函数读取时报了内存超限的异常,原因是一次读入DataFrame的数据超过了最大接收的限制,用批量处理的方法解决了。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File  : ImportDataToMysql.py

# @Author: Small-orange

# @Date  : 2019-12-13

# @Desc  :将Excel中的数据导入到Mysql数据库中

#1.创建数据库连接

#2.测试数据库连接

#3.读入数据

#4.将数据写入数据库

import pandas as pd

from sqlalchemy import create_engine

import time

#创建数据库连接

engine = create_engine('mysql+pymysql://root:123456@localhost:3306/demo01?charset=utf8')

#读取表--测试数据库连接

result = pd.read_sql_table('testdemo_test',con=engine)

#读入Excel中的数据

# fliename = r'C:\Users\cfc\Desktop\数据分析\Python\数据集\tianchi_mobile_recommend_train_user.csv'

data = pd.read_csv(r'C:\Users\cfc\Desktop\数据分析\Python\数据集\tianchi_mobile_recommend_train_user.csv',encoding='gbk',chunksize=100000)

# data.to_sql('BI招聘岗位信息',con=engine,if_exists='append')

for chunk in data:

    #将读取的数据写入Mysql

    chunk.to_sql('train_user',con=engine,if_exists='append')

print('运行时间:' , time.clock()-start)

print('--success--')

1200多万条数据花了14分钟的样子。

你可能感兴趣的:(Pandas批量读取csv文件数据存入到Mysql中)