使用pandas的to 您所在的位置:网站首页 pandas和sQl如果能连接使用 使用pandas的to

使用pandas的to

2024-02-22 04:00| 来源: 网络整理| 查看: 265

前边我们已经学习了,如何处理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 实验室设备网 版权所有