利用pandas操作Oracle及MySQL数据库

Python强大的处理数据的能力很大一部分来自Pandas,pandas不仅限于读取本地的离线文件,也可以在线读取数据库的数据,处理后再写回数据库中。pandas主要是以sqlalchemy方式与数据库建立链接,支持Mysql、postgresql、Oracle、MS SQLServer、SQLite等主流数据库。

SQLAlchemy

SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。可以使用pip命令安装SQLAlchemy模块:

pip install sqlalchemy

SQLAlchemy模块提供了create_engine()函数用来初始化数据库连接,SQLAlchemy用一个字符串表示连接信息:

'数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'

Pandas读写MySQL数据库

我们需要以下三个库来实现Pandas读写MySQL数据库:

  • pandas
  • pymysql
  • sqlalchemy

创建数据库连接:

connect = create_engine('mysql+pymysql://username:password@host:port/dbname')

将MySQL数据库中的表读取为pandas中的DataFrame:

sql = 'select * from test'
data = pd.read_sql(sql,connect)

将pandas中的DataFrame存储到MySQL数据库:

data.to_sql('tablename', connect, index=False, if_exists='append')

其中,if_exists 有三个参数,‘fail’:如果表存在,则存入失败

                                               ‘replace’:如果表存在,则替换

                                               ‘如果表存在’,则追加写

Pandas读写Oracle数据库

我们需要以下三个库来实现Pandas读写MySQL数据库:

  • pandas
  • cx_Oracle
  • sqlalchemy

创建数据库连接:

connect=create_engine('oracle://username:password@host:port/sid')

将Oracle数据库中的表读取为pandas中的DataFrame:

sql = 'select * from test'
data = pd.read_sql(sql,connect)

将pandas中的DataFrame存储到Oracle数据库:

data.to_sql('tablename', connect, index=False, if_exists='append')

 

你可能感兴趣的:(pandas)