Python数据分析实战笔记—Pandas数据读写(2)

9.对接数据库

数据往往存储于SQL类关系型数据库,作为补充,NoSQL数据库进来也流行开来。

从SQL数据库加载数据,将其转换为DataFrame对象很简单。pandas提供的几个函数简化了该过程。

pandas.io.sql模块提供于独立于数据库、叫作sqlalchemy的统一接口。该接口简化了连接模式,不管对于什么类型的数据库,操作命令都只有一套。

连接数据库使用create_engine()函数,你可以用它配置驱动器所需的用户名、密码、端口和数据库实例等所有属性。

下面是各种数据库的连接方法:

from sqlalchemy import create_engine

#1.PostgreSQL
engine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')

#2.MySQl
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

#3.Oracle
engine = create_engine('orcle://scott:tiger@127.0.0.1:1521/sidname')

#4.MSSQL
engine = create_engine('mysql+pyodbc:/mydsn')

#5.SQLite
engine = create_engine('sqlite:///foo.db')

SQLite3数据读取:

Python内置的SQLite数据库的sqlite3。SQLite3工具实现了简单、轻量级的DBMS SQL,因此可以内置于用Python语言实现的任何应用。它很实用,你可以在单个文件中创建一个嵌入式数据库。

from sqlalchemy import create_engine

frame  = pd.DataFrame(
        np.arange(20).reshape(4,5),
        columns = ['white','red','blue','black','green']
)
#1.连接
engine = create_engine('sqlite:///foo.db')
#2.读入colors数据库
frame.to_sql('colors',engine)
#3.读取colors数据
pd.read_sql('colors',engine)

>>
    index   white   red blue    black   green
0   0       0       1   2       3       4
1   1       5       6   7       8       9
2   2       10      11  12      13      14
3   3       15      16  17      18      19

PostgreSQL数据读写:

#1.连接数据库。
engine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')
#2.DataFrame数据结构对象写入数据库中的dataframe表中
frame.to_sql('dataframe',engine)
#3.数据表转换为DataFrame对象
pd.read_sql('daraframe',engine)

读取数据库数据时,把整张表都转换为dataFrame并不是最常用的操作。使用关系型数据库的开发人员,更喜欢用SQL语言的SQL查询选择数据,指定导出形式。

可以将SQL查询语句整合到read_sql_table()函数中去。

pd.read_sql_query('SELECT index,apr,may FROM DATAFRAME WHERE apr > 0.5',engine)
>>
    index   apr           may
0   exp1    0.979086      0.332289
1   exp3    0.905980      0.123449
2   exp4    0.958015      0.448064

NoSQL数据库MongoDB数据读写:

在所有NoSQl数据库()中,MongoDB最为流行。

待续。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值