pandas读取各类sql数据源
大数据分析中,我们经常需要使用pandas工具读取各类数据源并将结果保存到数据库中。
本文总结了一些读取和写入常用数据库数据的一些方法,包括mysql,oracle,impala等。
其中读取数据库数据有两种方法,一种是DBAPI2 connection,另一种是SQLAlchemy engine。下面介绍这两种方法。
一、读写mysql数据
1.首先安装python连接mysql的驱动,以mysql.connector为例
2.pandas读取数据,分两种方式:
#DBAPI2 connection方式连接
import mysql.connector
import pandas as pd
conn=mysql.connector.connect(host='127.0.0.1',user='root', passwd='password', db='test')
sql='select * from mytable'
df=pd.read_sql(sql,conn)
#SQLAlchemy engine方式
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+mysqlconnector://root:password@10.39.211.198:3306/test')
df=pd.read_sql(sql,engine )
3.pandas写入数据到mysql只有SQLAlchemy engine方式
#SQLAlchemy engine方式
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+mysqlconnector://root:password@10.39.211.198:3306/test')
df.to_sql('mytable',con=engine,if_exists='append',index=False)
二、读写oracle数据
1.首先安装python连接oracle的驱动cx_oracle
第2、3步骤同上,只是数据库驱动的写法不同。
oracle写成:
from sqlalchemy import create_engine
conn=cx_Oracle.connect('scott','tiger','10.0.0.100:1521/ORCL')
engine=create_engine('oracle://scott:tiger@10.0.0.100:1521/ORCL', echo=True)
三、读写impala数据
1.首先安装python连接impala的驱动(参照我的博客http://www.cnblogs.com/dotafeiying/p/6956265.html)
第2、3步骤同上,只是数据库驱动的写法不同。
impala写成:
from impala.dbapi import connect
from sqlalchemy import create_engine conn = connect(host='127.0.0.1',port=21050,database='db')
engine=create_engine('impala://127.0.0.1:21050/db')
用pandas往impala写入数据时可能会抛出数据类型错误,

要注意impala的数据类型,下面给一个我在实际项目中解决的例子:
from sqlalchemy.sql.sqltypes import String
df.to_sql('address',con=sqlconn,if_exists='append',index=False,dtype={'address': String})
一定要加后面的 dtype={'address': String}
现在,你就可以尽情的用pandas进行数据分析了。
以上是我个人的一些总结。
pandas读取各类sql数据源的更多相关文章
- Python+Pandas 读取Oracle数据库
Python+Pandas 读取Oracle数据库 import pandas as pd from sqlalchemy import create_engine import cx_Oracle ...
- JSP读取My SQL数据乱码问题的解决
用jsp读取My SQL数据库里面的数据,结果读出来的是乱码,把jsp页面的charset.pageEncoding属性都改成了UTF-8,My SQL数据库的Collate属性也改成了UTF-8,还 ...
- DevExpress后置代码中初始化SQL数据源的方法
//初始化SQL数据源的提供者和连接字符串 函数 OK public virtual void InitSqlDataSource_ConStr(SqlDataSource sql_ds) { Con ...
- SpringBoot文档翻译系列——29.SQL数据源
原创作品,可以转载,但是请标注出处地址: 因为需要使用到这方面内容,所有对这一部分进行了翻译. 29 使用SQL数据源 SpringBoot为SQL数据源提供了广泛支持,从直接使用JdbcTempl ...
- 深入理解pandas读取excel,txt,csv文件等命令
pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/versi ...
- Pandas读取文件
如何使用pandas的read_csv模块以及其他读取文件的模块?? 一起来看一看 Pandas中read_csv和read_table的区别 注:使用pandas读取文件格式为pandas特有的da ...
- Pandas 读取文本格式数据
title 其实书中说的我认为不够全,因为公司里面现在主要用stata和spss,暂时还没有用到sas,excel也很少用 那么读取文件的方式,因为有人已经总结了,我就偷过来算了 对应不同的文件类型有 ...
- Python 使用Pandas读取Excel的学习笔记
这里介绍Python中使用Pandas读取Excel的方法 一.软件环境: OS:Win7 64位 Python 3.7 二.文件准备 1.项目结构: 2.在当前实验文件夹下建立一个Source文件夹 ...
- 机器学习之数据预处理,Pandas读取excel数据
Python读写excel的工具库很多,比如最耳熟能详的xlrd.xlwt,xlutils,openpyxl等.其中xlrd和xlwt库通常配合使用,一个用于读,一个用于写excel.xlutils结 ...
随机推荐
- git常见操作
本地仓库关联远程仓库 新建本地目录scala git init 这样就新建了一个本地仓库 在远端如github上新建仓库scala 关联远程仓库 git remote add origin git@g ...
- k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx ...
- Bootstrap中data-src无法显示图片,但是src可以
在学习bootstrap时,书中的源码是用的data-src来定义图像位置,但是我在使用的时候无法显示图片:data-src可以在img标签中使用来显示图片吗?我使用src可以,而是用data-src ...
- 【开发技术】web.xml vs struts.xml
web.xml用来配置servlet,监听器(Listener),过滤器(filter),还有404错误跳转页面,500,等还配置欢迎页面等,总之一句话,就是系统总配置方案写在web.xml中 str ...
- Mysql Index extends优化
Innodb通过自动把主键列添加到每个二级索引来扩展它们: CREATE TABLE t1 ( i1 , i2 , d DATE DEFAULT NULL, PRIMARY KEY (i1, i2), ...
- 云计算之路-阿里云上:部分服务器未及时续费造成docker swarm集群故障
非常非常抱歉,由于我们的疏忽 —— docker swarm 集群中的 2 台服务器没有及时续费,造成在夜里0点被自动关机,从而引发整个 docker swarm 集群故障,造成今天凌晨 0:30 ~ ...
- BSA Network Shell系列-redi命令
redi ## 1 功能概述 redi将输出重定向到一个文件中 ## 2 语法 redi [-?] [-a] filename ## 3 使用示例 1 将输出重定向到隐式路径所在主机的/tmp/hah ...
- android .9图片的制作
android .9PNG图片制作 在android开发的过程中,我们经常因为没有好的美工图片失真,这样使界面看起来要逊色很多,有的时候可能我们会想在drawable-hdpi,ldpi,mdpi下放 ...
- Java项目专栏之数据库建表
Java项目专栏之数据库建表 数据库建表前期准备 1. 安装mysql:数据库语言,语法和sql server差不太多,如果习惯于sql server可以不用mysql. 2. 安装navicat:可 ...
- Halcon一日一练:创建三通道图像
首先理解一个什么是三通道图像: 三通道图像就是彩色图像,我们之前黑白相机或黑白电视机都是彩用的灰阶图像,即单通道图像,一般是2的8次方个灰阶,即256个灰阶.彩色图像采用RGB,红绿蓝三个通道来合成彩 ...