保姆级干货盘点#数据分析零基础到实战,Python、Pandas与各类数据库

今天我们来探索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/software-downloads-postgres

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

First ,安装目录,建议自己选择,不要安装在C盘。

Second ,Password,可以设置简单点,毕竟只是用来自己学习。

Third ,端口号,建议不要改,就用5432,改了容易和其他端口冲突,到时候自己又不知道怎么解决,麻烦。

其他没有说到的就默认设置,Next,Next,Next~安装过程一般10分钟左右,不要急。 Finally ,安装完成后,取消图上的选项框,图上的意思是在后台启动Stack Builder(堆栈生成器),没有必要。

最后推荐几个相关学习网站 Postgre 社区:https://www.postgresql.org/community/ Postgre官方文档: https://www.postgresql.org/docs/ 易百 Postgre 学习教程:https://www.yiibai.com/postgresql

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 努力 : 终有所获。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容