使用pandas的to | 您所在的位置:网站首页 › pandas和sQl如果能连接使用 › 使用pandas的to |
前边我们已经学习了,如何处理csv和Excel的数据了,我们其实有很多时候需要经这些数据录入数据库中 下面我们来实现数据入库 我们可以通过两种方式实现,pandas中的io.sql.to_sql方法和pandas中的DataFrame 数据库采用sqlalchemy模块进行连接 请你事先安装sqlalchemy pymysql pandas等模块 csv文件写入数据库 pd.DataFrame方式 #!/usr/bin/env python3 #coding=utf-8 import sys import pandas as pd import sqlalchemy.types as tp from sqlalchemy import create_engine def type_dict(df): #用来对csv中的数据进行类型选择,以对应mysql中的类型 types_dict = { } for k,v in zip(df.columns,df.dtypes): if 'object' in str(v): types_dict.update({ k:tp.VARCHAR(length=20)}) if 'int' in str(v): types_dict.update({ k:tp.INT()}) if 'float' in str(v): types_dict.update({ k:tp.Float}) if 'date' in str(v): types_dict.update({ k:tp.DATE}) return types_dict input_file = sys.argv[1] df = pd.read_csv(input_file,index_col=None) dict_types = type_dict(df) con = create_engine('mysql+pymysql://fengling:123@localhost/fengling') #连接数据库 df.to_sql(name='csv1',con=con,if_exists='append',index=False,dtype=dict_types) #将csv的内容写入csv1表中结果: MariaDB [fengling]> desc csv1 -> ; +----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------+-------+ | Supplier Name | varchar(20) | YES | | NULL | | | Invoice Number | varchar(20) | YES | | NULL | | | Part Number | int(11) | YES | | NULL | | | Cost | varchar(20) | YES | | NULL | | | Purchase Date | varchar(20) | YES | | NULL | | +----------------+-------------+------+-----+---------+-- |
CopyRight 2018-2019 实验室设备网 版权所有 |