先上代码

import pandas as pd
from sqlalchemy import create_enginedef excel_to_DB(host='host', port='port', user='user', passwd='123456', db='dbname', path_excel='acu.xlsx',table_name='obstacle_2d_00'):"""表数据存入DB:param host: 数据库地址:param port: 数据库端口:param user: 数据库账号:param passwd: 账号密码:param db:   数据库名:param path_excel: excel数据文件名:param table_name: 存入数据库的表名"""try:engine = create_engine(f'postgresql+psycopg2://{user}:{passwd}@{host}:{port}/{db}', encoding='utf8')data_excel = pd.read_excel(path_excel, engine='openpyxl')data_dataframe = pd.DataFrame(data_excel)data_dataframe.to_sql(table_name, con=engine, if_exists='replace', index=False)except:raise ValueError(f"write data  from {path_excel} failure !")
  • create_engine()函数连接数据库
    postgresql+psycopg2://{user}:{passwd}@{host}:{port}/{db}'
    postgresql是需要连接的数据库,psycopg2是连接数据库使用的第三方库,如果是连接mysql数据库,可以使用pymysql或者mysql。

  • pd.read_excel() 读取excel文件
    pd.read_excel(io, sheetname=0, header=0, index_col=None, names=None, dtype=None)

    数名 说明
    io string ,表示文件路径
    sheetname string,int,代表excel表内数据分表的位置,默认0
    header int, sequence,表示某行数据作为列表。默认inger, 表示自动识别。
    index_col int, sequence,False,索引列的位置,取值为sequence时代表多重索引。默认为None
    names int,sequence、False,索引列的位置,取值为sequence时代表多重索引。默认None
    dtype dict,代表写入的数据类型(列表为key,数据格式为values)。默认为None

    如果读取的Pandas 读取超过 65536 行的 Excel 文件时(xls最多支持65536 行,256 列; xlsx 最多支持 1,048,576行,16,384列),会因为默认读取 Excel 文件的引擎xlrd只能读取65536 行,会出现数据丢失的问题。需要将pd.read_excel中的引擎设置为openpyxl (一个专门用来操作 .xlsx 格式文件的 Python 库,它对于最大行列数的支持和 .xlsx 文件所定义的最大行列数一致)

  • pd.to_sql()函数将dataframe数据写入数据库
    data_dataframe.to_sql(table_name, con=engine, if_exists='replace', index=False)

参数
name: string SQL表的名称。
con: sqlalchemy.engine.Engine或sqlite3.Connection
使用SQLAlchemy可以使用该库支持的任何数据库。为sqlite3.Connection对象提供了旧版支持。
schema: string,optional 指定架构(如果数据库支持)。如果为None,请使用默认架构。
if_exists: {‘fail’,‘replace’,‘append’},默认’fail’
如果表已存在的情况如下,
* fail:引发ValueError。
* replace:在插入新值之前删除表。
* append:将新值插入现有表。
index: 布尔值,默认为True 将DataFrame索引写为列。使用index_label作为表中的列名。
index_label: 字符串或序列,默认为None 索引列的列标签。如果给出None(默认)且 index为True,则使用索引名称。如果DataFrame使用MultiIndex,则应该给出一个sequence。
chunksize: int,可选 行将一次批量写入的数量。默认情况下,所有行都将立即写入。
dtype: dict,可选 指定列的数据类型。键应该是列名,值应该是SQLAlchemy类型,或sqlite3传统模式的字符串。

pandas将数据从excel导入数据库相关推荐

  1. Java实现Excel导入数据库,数据库中的数据导入到Excel

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1. ...

  2. excel数据导入mysql被截取,从EXCEL导入数据库数值型都被四舍五入了-excel导入mysql数据库...

    excel数据导入mysql有什么好办法 使用Navicat 连接导入的数据库. excel 列的名字最好和数据库字一致,便们直查看好理解. 第一步,先创建好表,和准备好对应的excel文件.在Nav ...

  3. vb6将excel数据导入mysql_VB6操作EXCEL导入数据库

    VB6操作EXCEL导入数据库 Private Function FunImpExcel(ByVal strFilePath As String) As Integer 'Excel文件格式 '第一行 ...

  4. java通过jxl处理execl空行_jxl操作Excel导入数据库之空行的处理

    jxl因其快速小巧受到大家的欢迎,但是jxl还是有许多不尽如人意的地方. 本文旨在解决jxl读取excel数据时无法自动取掉空行的问题,其实就是添加一个方法. ? //返回去掉空行的记录数 priva ...

  5. php读取excel中数据库,ThinkPHP 框架实现的读取excel导入数据库操作示例

    本文实例讲述了ThinkPHP 框架实现的读取excel导入数据库操作.分享给大家供大家参考,具体如下: 入口文件中: require_once VENDOR_PATH.'PHPExcel/PHPEx ...

  6. 当excel 导入数据库的字段大于255时,把第一行的字段加长超过255.

    当excel 导入数据库的字段大于255时,把第一行的字段加长超过255. 因为Excel驱动程序在进行导入操作时会预先采样部分数据判断字段的数据类型,所以对采样数据结果作的判断同全部数据的数据类型有 ...

  7. ASP.NET 将Excel导入数据库

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  8. java web excel导入数据库

    原作者:sincoolvip 出处:http://www.cnblogs.com/sincoolvip/p/6531403.html 分析:首先采用一个工具类Excel2List.java,把exce ...

  9. 100000行级别数据的 Excel 导入优化之路

    大家好,我是不才陈某~ 今天分享一篇大数据量Excel导入如何优化的文章,非常不错. 需求说明 项目中有一个 Excel 导入的需求:缴费记录导入 由实施 / 用户 将别的系统的数据填入我们系统中的 ...

最新文章

  1. 还原dede数据后系统基本参数空白无显示的解决方法
  2. POJ-2828-Buy Tickets
  3. Spring+SpringMvc+Mybatis框架集成搭建教程二(依赖配置及框架整合)
  4. 每日总结-2016年3月9日
  5. FPGA图像处理的开发流程
  6. V210 SPI驱动分析
  7. Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析
  8. HDU1174(空间点到直线的距离,用叉积)
  9. 数据分析数据挖掘(三)
  10. SocketServer模块中的几种类
  11. python计算导数_科学网—python计算导数jacobian以及hessian - 于博的博文
  12. 路由器 刷rom php,路由器刷固件常用命令Openwrt 之mtd/mtd_write烧写固件
  13. Tableau豆瓣电影数据项目实战练习3
  14. 一杯凉茶 mysql_一杯凉茶,一卷诗书
  15. Hibernate基础知识
  16. 高达1000美元,扫地机器人Roomba如何成为疫情期间的赢家?
  17. 梅科尔工作室——鸿蒙设备开发实战004:内核开发
  18. 2021-01-09:Microsoft Word2019 提示:很抱歉此功能看似已中断,并需要修复。请使用Windows控制面板中的“程序和功能”选项修复Microsoft Office
  19. Beta 测试和 Alpha 测试有什么区别?
  20. 【微服】单体、SOA、微服务

热门文章

  1. 程序员修炼之道---之小工到专家
  2. 详解:二极管M7和A7的区别
  3. 如何在Mac上创建您自己的快捷键?如果键盘快捷键不能正常工作该怎么办?
  4. 手撕数据结构与算法——树(三指针描述一棵树)
  5. 最新web学习路线及课程大纲
  6. Schwaemm Esch:使用Sparkle排列家族的轻量级认证加密哈希
  7. 《STM32从零开始学习历程》——CAN相关结构体
  8. 华为总裁任正非新年致辞:没什么能阻挡前进
  9. 工训计算机组维报告,计算机实训报告
  10. Norton PartitionMagic