数据分析从零开始实战 | 基础篇(五)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 数据分析从零开始实战 | 基础篇(五)

简说Python,号主老表,Python终身学习者,数据分析爱好者,从18年开始分享Python知识,原创文章227篇,写过Python、SQL、Excel入门文章,也写过Web开发、数据分析文章,老表还总结整理了一份2022Python学习资料和电子书资源,关注后私信回复:2022 即可领取。

零、写在前面

前面四篇文章讲了数据分析虚拟环境创建和pandas读写CSV、TSV、JSON、Excel、XML格式的数据,HTML页面读取,今天我们继续探索pandas。


数据分析从零开始实战

数据分析从零开始实战 | 基础篇(一)

数据分析从零开始实战 | 基础篇(二)

数据分析从零开始实战 | 基础篇(三)

数据分析从零开始实战 | 基础篇(四)


本系列学习笔记参考书籍:《数据分析实战》托马兹·卓巴斯

一、基本知识概要

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

二、开始动手动脑

1、SQLAlchemy模块安装

安装SQLAlchemy模块(下面操作都是在虚拟环境下):
方法一:直接pip安装(最简单,安装慢,可能出错)

pip install SQLAlchemy

方法二:轮子(wheel)安装(比较简单,安装速度还可以,基本不出错)
在该网站下载https://pypi.org/project/SQLAlchemy/1.3.3/)SQLAlchemy
.whl文件,然后移动到你的开发环境目录下。

pip install xxxxx.whl

方法三:豆瓣源安装(比较简单,安装速度快,方便,推荐)

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

image.png

我是使用豆瓣源安装的,速度很快

2、数据库PostgreSQL下载安装

(1) 下载地址:https://www.enterprisedb.com/software-downloads-postgres

image.png


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

image.png

在这里插入图片描述


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

image.png


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

image.png


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

image.png


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

image.png


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

3、PostgreSQL基本介绍使用

(1 PostgreSQL特点

image.png


image.png


以上内容截取自 易百 Postgre 学习教程。

(2) 利用PostgreSQL创建一个数据库

a .打开pgADmin4,发现这个图形化操作界面是一个Web端的,先会要求输入密码,就是安装时候设置的密码。
点击
Servers->PostgreSQL 11->Databases->右键->Create->Database。

image.png


b .输入数据库名称,其他默认,注释自己随便写,我写的first database,表示我的第一个数据库。

image.png


我们还可以看一下数据库创建的语句,点击弹框中的SQL即可。

image.png

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"   # 数据库密码
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>
数据库类型://数据库用户名:数据库密码@服务器IP(如:127.0.0.1)或者服务器的名称(如:localhost):端口号/数据库名称
其中<database_type>可以是:postgresql,mysql等。
csv_read.to_sql('real_estate', engine, if_exists='replace')
pandas的to_sql函数,将数据(csv_read中的)直接存入postgresql,第一个参数指定了存储到数据库后的表名,第二个参数指定了数据库引擎,第三个参数表示,如果表real_estate已经存在,则替换掉。


(3) 运行结果

image.png


此外,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)

image.png

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

a . Python 与 MySql

# 使用前先安装 pymysql 模块 :pip install pymysql
# 导入 pymysql 模块
import pymysql
#连接数据库,参数说明:服务器,用户名,数据库密码,数据库名称
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()


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
79 5
|
3月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
57 1
|
2月前
|
数据采集 数据可视化 数据挖掘
基于Python的数据分析与可视化实战
本文将引导读者通过Python进行数据分析和可视化,从基础的数据操作到高级的数据可视化技巧。我们将使用Pandas库处理数据,并利用Matplotlib和Seaborn库创建直观的图表。文章不仅提供代码示例,还将解释每个步骤的重要性和目的,帮助读者理解背后的逻辑。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和技能。
200 0
|
2月前
|
SQL 数据采集 数据可视化
深入 Python 数据分析:高级技术与实战应用
本文系统地介绍了Python在高级数据分析中的应用,涵盖数据读取、预处理、探索及可视化等关键环节,并详细展示了聚类分析、PCA、时间序列分析等高级技术。通过实际案例,帮助读者掌握解决复杂问题的方法,提升数据分析技能。使用pandas、matplotlib、seaborn及sklearn等库,提供了丰富的代码示例,便于实践操作。
170 64
|
1月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
3月前
|
数据挖掘 Python
Pandas实战(1):电商购物用户行为数据分析
Pandas实战(1):电商购物用户行为数据分析
117 1
|
3月前
|
数据挖掘 Python
Pandas实战(3):电商购物用户行为数据分析
Pandas实战(3):电商购物用户行为数据分析
130 1
|
3月前
|
数据挖掘 Python
Pandas实战(2):电商购物用户行为数据分析
Pandas实战(2):电商购物用户行为数据分析
74 1
|
2月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
133 0
|
4月前
|
数据采集 算法 数据挖掘
10余位大佬+10余年经验的结晶:Python数据分析与挖掘实战
LinkedIn 对全球超过3.3亿用户的工作经历和技能进行分析后得出,目前最炙手可热的25 项技能中,数据挖掘排名第一。那么数据挖掘是什么? 数据挖掘是从大量数据(包括文本)中挖掘出隐含的、先前未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具和过程。数据挖掘有助于企业发现业务的趋势,揭示已知的事实,预测未知的结果,因此“数据挖掘”已成为企业保持竞争力的必要方法。 今天给小伙伴们分享的Python数据分析与数据挖掘手册是10余位数据挖掘领域资深专家和科研人员,10余年大数据挖掘咨询与实施经验结晶。从数据挖掘的应用出发,以电力、
10余位大佬+10余年经验的结晶:Python数据分析与挖掘实战