Pandas文件读取——Pandas.read_sql() 详解
一、函数原型
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() 详解的更多相关文章
- Linux文件权限与属性详解 之 一般权限
目录 一般属性 1. iNode: 3152621 2. 文件类型 3.文件访问权限 4. 链接数目: 5. 文件所有者 6. 文件所属组 7. 文件大小 8. 修改时间 9. 文件名称 Linux文 ...
- Linux文件权限与属性详解 之 chattr & lsattr
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]
博客园 首页 新随笔 联系 订阅 管理 随笔 - 322 文章 - 0 评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转] 一./etc/fstab文件的作用 ...
- Linux 执行文件查找命令 which 详解
某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查 ...
- Struts2+Uploadify文件上传使用详解
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例是php版本的,本文将详细介绍Uploadify在java中的使用,您也可以点击下面的链接进行演示或下 ...
- 轻松学习Linux之Shell文件和目录属性详解
轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...
- [js高手之路]深入浅出webpack系列2-配置文件webpack.config.js详解
接着上文,重新在webpack文件夹下面新建一个项目文件夹demo2,然后用npm init --yes初始化项目的package.json配置文件,然后安装webpack( npm install ...
- [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)
本文继续接着上文,继续写下webpack.config.js的其他配置用法. 一.把两个文件打包成一个,entry怎么配置? 在上文中的webpack.dev.config.js中,用数组配置entr ...
随机推荐
- 基于OpenCV全景拼接(Python)SIFT/SURF
一.实验内容: 利用sift算法,实现全景拼接算法,将给定的两幅图片拼接为一幅. 二.实验环境: 主机配置: CPU :intel core i5-7300 2.50GHZ RAM :8.0GB 运行 ...
- hdu 4465 Candy (非原创)
LazyChild is a lazy child who likes candy very much. Despite being very young, he has two large cand ...
- Bootstrap页头
页头组件能够为 h1 标签增加适当的空间,并且与页面的其他部分形成一定的分隔.它支持 h1 标签内内嵌 small 元素的默认效果,还支持大部分其他组件(需要增加一些额外的样式). <div c ...
- Linux 驱动框架---net驱动框架
这一篇主要是学习网络设备驱动框架性的东西具体的实例分析可以参考Linux 驱动框架---dm9000分析 .Linux 对于网络设备的驱动的定义分了四层分别是网络接口层对上是IP,ARP等网络协议,因 ...
- TestNG学习-依赖
背景: 有时,需要按特定顺序调用测试方法.例如: 在运行更多测试方法之前,请确保一定数量的测试方法已经完成并成功. 在希望将初始化的方法也用作测试方法的同时初始化测试项目. TestNG允许使用注解或 ...
- SVG path d Attribute
Scalable Vector Graphics (SVG) 1.1 (Second Edition) W3C Recommendation 16 August 2011 http://www.w3. ...
- GIF : 超好用的gif 图片制作工具: LICEcap
超好用的gif 图片制作工具: LICEcap simple animated screen captures http://www.cockos.com/licecap/https://github ...
- BB link
1 1 1 BB link: 1 1 demo: code: result: 1 1 1 1 1 1 1
- github & gist & Weekly development breakdown
github & gist & Weekly development breakdown https://gist.github.com/xgqfrms WakaTime waka-b ...
- 2019 front-end job Interview
2019 front-end job Interview 2019 前端面试题 掘金 https://juejin.im/tag/面试 https://juejin.im/post/5c875791e ...