热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:#yyds干货盘点#数据分析从零开始实战,PythonPandas与各类数据库

篇首语:本文由编程笔记#小编为大家整理,主要介绍了#yyds干货盘点#数据分析从零开始实战,PythonPandas与各类数据库相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了#yyds干货盘点#数据分析从零开始实战,PythonPandas与各类数据库相关的知识,希望对你有一定的参考价值。



这是我参与11月更文挑战的第18天。


零、写在前面

本系列学习笔记参考书籍: 《数据分析实战》托马兹·卓巴斯,会将自己学习本书的笔记分享给大家,同样开成一个系列『数据分析从零开始实战』。


点击查看第一篇文章:​​ # 数据分析从零开始实战,Pandas读写CSV数据​​

点击查看第二篇文章:​​ # 数据分析从零开始实战,Pandas读写TSV/Json数据​​

点击查看第三篇文章: ​​ # 数据分析从零开始实战,Pandas读写Excel/XML数据​​

点击查看第四篇文章:  ​​# 数据分析从零开始实战,Pandas读取HTML页面+数据处理解析​​


前面四篇文章讲了数据分析虚拟环境创建和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)安装(比较简单,安装速度还可以,基本不出错) 点击​​这里下载​​SQLAlchemy的​​.whl​​文件,然后移动到你的开发环境目录下。

pip install xxxxx.whl

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

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_mysql

2、数据库PostgreSQL下载安装

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_Python_02

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_postgresql_03

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_mysql_04

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_mysql_05

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_Python_06

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_数据分析_07

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

3、PostgreSQL基本介绍使用

(1) PostgreSQL特点

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_postgresql_08

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_Python_09

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_Python_10

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_postgresql_11

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_postgresql_12

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函数,创建一个数据库连接,参数为一个字符串,字符串的格式是:

://:@:/

​数据库类型://数据库用户名:数据库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) 运行结果

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_Python_13

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

#yyds干货盘点#数据分析从零开始实战,Python、Pandas与各类数据库_数据分析_14

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


思想很复杂,

实现很有趣,

只要不放弃,

终有成名日。

—《老表打油诗》


下期见,我是爱猫爱技术的老表,如果觉得本文对你学习有所帮助,欢迎点赞、评论、关注我!


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
author-avatar
蓝瑟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有