pd.tosql不能将csv文件导入mysql?

pd.to_sql仅支持sqlite3与sqlalchemy,所以pymysql直接建立的数据库连接对象无法作为to_sql的连接参数

改动如下:

利用sqlalchemy建立数据库连接
导入方法换成pd.io.to_sql()

将csv文件导入mysql实例:

# 导包
import pymysql	# mysql驱动
import pandas as pd
from sqlalchemy import create_engine	# pandas支持的驱动方式

# 读取csv文件内容
notes = pd.read_csv('/Users/wjl/Desktop/xc_notes.csv',encoding='utf8')

# create_engine 创建数据库连接conn
conn = create_engine('mysql+pymysql://root:278***972@localhost:3306/qn_yj?charset=utf8')

# 导入	pd.io.to_sql( DataFrame, table_name, con=db_connect, if_exists='append/fail/replace', index=False)
pd.io.sql.to_sql(notes,'lvyou_note',con=conn,if_exists='append',index=False)

踩坑:

1 提前建好数据库和表

并不是必要,to_sql 会自动生成,但推荐建好,可控性

2 在csv文件首行,添加与表字段相同的内容,一一对应
3 网上很多代码在建立数据库连接的时候,驱动写的是mysqldb,本机不可用,换pymysql正常
4 if_exists参数为append
5 index参数为False,源码默认为True,sql语句会在表中加一列,然而列名都已指定,所以会报错,换False正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值