一、函数原型

pandas.read_sql(sql, con, index_col=None,
coerce_float=True, params=None,
parse_dates=None, columns=None,
chunksize=None)

二、常用参数说明

  • sql:SQL命令字符串
  • con:连接sql数据库的engine,一般可以用SQLalchemy或者pymysql之类的包建立
  • index_col: 选择某1列或几列作为index(或MultiIndex),字符串或字符串列表
  • coerce_float:非常有用,将数字形式的字符串直接以float型读入
  • parse_dates:将某一列日期型字符串转换为datetime型数据,与pd.to_datetime函数功能类似。可以直接提供需要转换的列名以默认的日期形式转换,也可以用字典的格式提供列名和转换的日期格式:

    比如{column_name: format string}(format string:"%Y:%m:%H:%M:%S")。
  • columns:要选取的列。一般没啥用,因为在sql命令里面一般就指定要选择的列了
  • chunksize:如果提供了一个整数值,那么就会返回一个generator,每次输出的行数就是提供的值的大小。

三、连接数据库方式——MySQL

①用sqlalchemy包构建数据库链接

import pandas as pd
from sqlalchemy import create_engine # ‘mysql+pymysql://{用户名}:{密码}@{域名}:{端口号}/{数据库名}?charset=utf8’
con = create_engine('mysql+pymysql://root:123456@localhost:3306/data')
# sql脚本
sql = 'select * from sc'
# 把sql查询结果读取为数据框
df = pd.read_sql(sql,con)

封装数据库信息,格式化传入

db_info = {
'user':'root',
'password':'123456',
'host':'localhost',
'database':'data',
'port':3306
}
con = create_engine('mysql+pymysql://%(user)s:%(password)s@%(host)s:%(port)d/%(database)s?charset=utf8' % db_info,encoding='utf-8')

②用DBAPI构建数据库链接

import pandas as pd
import pymysql sql = 'select * from sc'
con = pymysql.connect(host='localhost',user='root',password='123456',database='data',port=3306,charset='utf8')
df = pd.read_sql(sql,con)

③将数据库敏感信息保存在文件中

  在桌面创建文件夹‘password’,在文件夹中创建文件‘root@mysql.txt’,文件写入数据库连接信息:

          mysql+pymysql://root:123456@localhost:3306/data

保存即可。

db_info = open(r'C:/Users/asus/Desktop/password/root@mysql.txt')
con = create_engine(db_info.read())

Pandas文件读取——Pandas.read_sql() 详解的更多相关文章

  1. Linux文件权限与属性详解 之 一般权限

    目录 一般属性 1. iNode: 3152621 2. 文件类型 3.文件访问权限 4. 链接数目: 5. 文件所有者 6. 文件所属组 7. 文件大小 8. 修改时间 9. 文件名称 Linux文 ...

  2. Linux文件权限与属性详解 之 chattr & lsattr

    Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...

  3. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  4. 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]

    博客园 首页 新随笔 联系 订阅 管理 随笔 - 322  文章 - 0  评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转]     一./etc/fstab文件的作用 ...

  5. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  6. Struts2+Uploadify文件上传使用详解

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...

  7. 轻松学习Linux之Shell文件和目录属性详解

    轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...

  8. [js高手之路]深入浅出webpack系列2-配置文件webpack.config.js详解

    接着上文,重新在webpack文件夹下面新建一个项目文件夹demo2,然后用npm init --yes初始化项目的package.json配置文件,然后安装webpack( npm install ...

  9. [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)

    本文继续接着上文,继续写下webpack.config.js的其他配置用法. 一.把两个文件打包成一个,entry怎么配置? 在上文中的webpack.dev.config.js中,用数组配置entr ...

随机推荐

  1. 关于优先队列的总结II

    优先队列这个数据结构还是很有用的,可以帮我们解决很多棘手的排序的问题,所以再来细细看一下, priority_queue<Type, Container, Functional> Type ...

  2. (数据科学学习手札107)在Python中利用funct实现链式风格编程

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 链式编程是一种非常高效的组织代码的方式,典型如p ...

  3. 你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined

    1 1 1 === 全相等(全部相等) ==  值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console ...

  4. CSS font-weight all in one

    CSS font-weight all in one font-weight: bolder: 没毛病呀! /* 关键字值 */ font-weight: normal; font-weight: b ...

  5. HTML5 Canvas in Action

    HTML5 Canvas in Action canvas 图片处理 视频编辑工具 xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  6. 小程序 怎么发 beta 版本

    小程序 怎么发 beta 版本 微信 https://developers.weixin.qq.com/miniprogram/dev/devtools/mydev.html 小程序助手 支付宝 ht ...

  7. Node.js & 页面截图 & 生成画报

    Node.js & 页面截图 & 生成画报 https://zzk.cnblogs.com/my/s/blogpost-p?Keywords=headless solution 使用 ...

  8. GitHub & JavaScript & Trending

    GitHub & JavaScript & Trending Trending JavaScript repositories on GitHub this week https:// ...

  9. Flutter: 判断是Android还是Ios

    /// 在ui中使用下面的这个判断 Theme.of(context).platform == TargetPlatform.android /// 而不是 import 'dart:io' Plat ...

  10. ES进行date_histogram时间聚合,聚合结果时间不正确问题

    在做项目中,有一个需求是统计本周内每天的漏洞数量,我选用的是ES中的date_histogram函数来进行聚合统计: 但是出现了一个问题,聚合出来的结果和想要统计的结果时间不一致,如下图所示 时间区间 ...