用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里就是看不到,所以追加一列,以便让自己想要得列出来。具体原因待查,也希望有高手可以直接告诉我。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
