明天咱们来摸索pandas。

一、基本知识概要

  1. SQLAlchemy模块装置
  2. 数据库PostgreSQL下载安装
  3. PostgreSQL根本介绍应用
  4. Pandas+SQLAlchemy将数据导入PostgreSQL
  5. Python与各种数据库的交互代码实现

二、开始入手动脑

1、SQLAlchemy模块装置

装置SQLAlchemy模块(上面操作都是在虚拟环境下): 办法一:间接pip装置(最简略,装置慢,可能出错)

pip install SQLAlchemy

办法二:轮子(wheel)装置(比较简单,装置速度还能够,根本不出错) 点击这里下载SQLAlchemy的.whl文件,而后挪动到你的开发环境目录下。

pip install xxxxx.whl

办法三:豆瓣源装置(比较简单,装置速度快,不便,举荐)

pip install \-i https://pypi.douban.com/simple/ SQLAlchemy

2、数据库PostgreSQL下载安装

(1) 下载地址:https://www.enterprisedb.com/...

(2) 下载实现后,点击安装文件,基本上就是Next。

First ,装置目录,倡议本人抉择,不要装置在C盘。

Second ,Password,能够设置简略点,毕竟只是用来本人学习。

Third ,端口号,倡议不要改,就用5432,改了容易和其余端口抵触,到时候本人又不晓得怎么解决,麻烦。

其余没有说到的就默认设置,Next,Next,Next~装置过程个别10分钟左右,不要急。 Finally ,装置实现后,勾销图上的选项框,图上的意思是在后盾启动Stack Builder(堆栈生成器),没有必要。

最初举荐几个相干学习网站 Postgre 社区:https://www.postgresql.org/co... Postgre官网文档: https://www.postgresql.org/docs/ 易百 Postgre 学习教程:https://www.yiibai.com/postgr...

3、PostgreSQL根本介绍应用

(1) PostgreSQL特点


以上内容截取自 易百 Postgre 学习教程。 (2) 利用PostgreSQL创立一个数据库 a .关上pgADmin4,发现这个图形化操作界面是一个Web端的,先会要求输出Password,就是装置时候设置的Password。 点击Servers->PostgreSQL 11->Databases->右键->Create->Database

b .输出数据库名称,其余默认,正文本人轻易写,我写的first database,示意我的第一个数据库。

咱们还能够看一下数据库创立的语句,点击弹框中的SQL即可。

4、Pandas+SQLAlchemy将数据导入Postgre

(1) Python操作代码

import pandas as pd  import sqlalchemy as sa      \# 读取的CSV文件门路  r\_filepath \= r"H:\\PyCoding\\Data\_analysis\\day01\\data01\\realEstate\_trans.csv"  \# 数据库鉴权  user \= "postgres"   \# 数据库用户名  password \= "root"   \# 数据库password  db\_name \= "test513"   \# 数据库名称  \# 连贯数据库  engine \= sa.create\_engine('postgresql://{0}:{1}@localhost:5432/{2}'.format(user, password, db\_name))  print(engine)  \# 读取数据  csv\_read \= pd.read\_csv(r\_filepath)  \# 将 sale\_date 转成 datetime 对象  csv\_read\['sale\_date'\] \= pd.to\_datetime(csv\_read\['sale\_date'\])  \# 将数据存入数据库  csv\_read.to\_sql('real\_estate', engine, if\_exists\='replace')  print("实现")  \# 可能报错:ModuleNotFoundError: No module named 'psycopg2'  \# 解决办法:pip install psycopg2

(2) 代码解析

engine \= sa.create\_engine('postgresql://{0}:{1}@localhost:5432/{2}'.format(user, password, db\_name))

sqlalchemy的create\_engine函数,创立一个数据库连贯,参数为一个字符串,字符串的格局是:

<database_type>://<user_name>:<password>@<server>:<port>/<database_name>

数据库类型://数据库用户名:数据库password@服务器IP(如:127.0.0.1)或者服务器的名称(如:localhost):端口号/数据库名称

其中能够是:postgresql,mysql等。

csv\_read.to\_sql('real\_estate', engine, if\_exists\='replace')

pandas的to\_sql函数,将数据(csv\_read中的)间接存入postgresql,第一个参数指定了存储到数据库后的表名,第二个参数指定了数据库引擎,第三个参数示意,如果表real_estate曾经存在,则替换掉。 (3) 运行后果

此外,pandas库还提供了数据库查问操作函数read_sql_query,只需传入查问语句和数据库连贯引擎即可,源码正文为Read SQL query into a DataFrame.,意思是:把数据库查问的内容变成一个DataFrame对象返回。

query \= 'SELECT \* FROM real\_estate LIMIT 10'  top10 \= pd.read\_sql\_query(query, engine)  print(top10)

5、Python与各个数据库的交互代码

a . Python 与 MySql

\# 应用前先装置 pymysql 模块 :pip install pymysql  \# 导入 pymysql 模块  import pymysql  #连贯数据库,参数阐明:服务器,用户名,数据库password,数据库名称  db \= pymysql.connect("localhost","root","root","db\_test")  #应用cursor()办法创立一个游标对象  cursor \= db.cursor()  #应用execute()办法执行SQL语句  cursor.execute("SELECT \* FROM test\_table")  #应用fetall()获取全副数据  data \= cursor.fetchall()  #敞开游标和数据库的连贯  cursor.close()  db.close()

b . Python 与 MongoDB

\# 应用前先装置 pymongodb 模块 :pip install pymongodb   \# 导入 pymogodb 模块  import pymongo  \# 连贯数据库,参数阐明:服务器IP,端口号默认为27017  my\_client \= pymongo.MongoClient(host\="127.0.0.1",port\=27017)  \# 间接通过数据库名称索引,有点像字典  my\_db \= my\_client\["db\_name"\]    \# 连贯 collection\_name 汇合,Mongodb里汇合就相当于Mysql里的表  my\_collection \= my\_client\["collection\_name"\]    datas \= my\_collection.find() \# 查问  for x in datas :    print(x)

c . Python 与 Sqlite

\# 应用前先装置 sqlite3  模块 :pip install sqlite3  '''  sqlite数据库和后面两种数据库不一样,它是一个本地数据库  也就是说数据间接存在本地,不依赖服务器  '''  \# 导入 sqlite3 模块  import sqlite3  \# 连贯数据库,参数阐明:这里的参数就是数据文件的地址  conn \= sqlite3.connect('test.db')  #应用cursor()办法创立一个游标对象  c \= conn.cursor()  #应用execute()办法执行SQL语句  cursor \= c.execute("SELECT \* from test\_table")  for row in cursor:    print(row)  #敞开游标和数据库的连贯  c.close()  conn.close()

三、送你的话

保持 and 致力 : 终有所获。

如果文章对你有帮忙的话,点个赞再走吧