用pandas从exl向sql插入数据的方法记录(刚学编程)

在职人员30+开始学编程,深感不易。查了好几个帖子,集合一下。不足之处慢慢改。

主要就是从Excel读取数据插入sql,将sql查询结果再插入exl中。

1、准备模块

import pandas,os,xlrd,pymssql,sqlalchemy

设置路径,设好比较方便

os.chdir('F:/xxxx.xls')

2、准备好要插入的表

2.1  设置好字段名,

colname1 = ['第一列','第二列','第三列']

file = pandas.read_excle('要读的文件',header = 7{要从哪行开始},index_col = 0{这个好像可以不要},usecols = [0,1,2,3],names = colname1)

3.准备插入sql

3.1  创建链接

conn1 = sqlachemy.create_engine('mssql+pymssql://账号:密码@服务器IP/数据库名')

以下是create_engine用法。这部分查了挺久的,查了也试了很多方法,最好好像还是这个最简单,也能实现。以下是复制别人的内容,贴在自己这里,防止以后别人删了找不到。

*****

create_engine用法 

engine = create_engine('dialect+driver://username:password@host:port/database')

dialect -- 数据库类型

driver -- 数据库驱动选择

username -- 数据库用户名

password -- 用户密码

host 服务器地址

port 端口

database 数据库

mic_sql的方法,mysql不会用,链接也多,只复制下面这个,找了快一天呢。

engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

*******分割结束

3.2开始插入

file1.to_sql(name = ‘要插入的表’,con = conn1,if_exists='append’,index = False)

{还有replace和fail可选,第一次用replace,保证插入数据,之后再用append,因为数据清洗还不会,准备再sql里先清洗,看需求吧。pandas也可以洗,不过不符合个人需求}。

至此,数据插入结束。但是不知道为什么,在选列的时候,如果前面不多一列,自己实际想要开始的列在sql里就是看不到,所以追加一列,以便让自己想要得列出来。具体原因待查,也希望有高手可以直接告诉我。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部