Python学习打卡:day15

day15

笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了

目录

  • day15
    • 110、数据分析案例步骤 1 —— 文件读取
      • data_define_108.py
      • file_define_108.py
    • 111、数据分析案例步骤二——数据计算
    • 112、数据分析案例步骤3——可视化开发
    • 113、数据库介绍
      • 数据库是什么?有什么作用呢?
      • 数据库如何组织数据呢
      • 数据库软件
      • 数据库和 SQL 的关系
    • 114、MySQL 的安装
      • 1、下载
      • 2、安装
      • 3、配置环境变量
      • 4、验证
    • 115、使用图形化工具操作MySQL数据库软件
      • 安装
      • 连接MySQL

110、数据分析案例步骤 1 —— 文件读取

data_define_108.py

"""
数据定义的类
"""

class Record:
    date = None
    order_id = None
    money = None
    province = None

    def __init__(self, m_date, m_order_id, m_money, m_province):
        self.date = m_date              # 日期
        self.order_id = m_order_id      # 订单号
        self.money = m_money            # 金额
        self.province = m_province      # 省份

    def __str__(self):
        return f"{self.date}, {self.order_id}, {self.money}, {self.province}"

file_define_108.py

"""
和文件相关的类定义
"""
import json
from typing import List
from data_define_108 import Record

# 先定义一个抽象类用来做顶层设计,确定有哪些功能需要实现
class FileReader:

    def read_data(self) -> List[Record]:
        """读取文件的数据,读取到的每一条数据转换为 Record 对象,将他们都封装到 List内再返回即可"""
        pass

class TextFileReader(FileReader):
    path = None

    def __init__(self, m_path):
        self.path = m_path      # 定义成员变量记录文件的路径

    # 复写(实现抽象方法)父类的方法
    def read_data(self) -> List[Record]:
        f = open(self.path, "r", encoding="UTF-8")

        record_list : list[Record] = []
        for line in f.readlines():
            line = line.strip()     # 消除读取到的每一行数据中的 \n
            data_list = line.split(",")
            record = Record(data_list[0], data_list[1], int(data_list[2]), data_list[3])
            record_list.append(record)
            # print(line)
        f.close()
        return record_list

class JsonFileReader(FileReader):
    path = None

    def __init__(self, path):
        self.path = path        # 定义成员变量记录文件的路径

    def read_data(self) -> List[Record]:
        f = open(self.path, "r", encoding="UTF-8")
        record_list: list[Record] = []
        for line in f.readlines():
            data_dict = json.loads(line)
            record = Record(data_dict["date"], data_dict["order_id"], int(data_dict["money"]), data_dict["province"])
            record_list.append(record)
        f.close()
        return record_list


if __name__ == '__main__':
    text_file_reader = TextFileReader("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/03_Python第三阶段/数据分析案例/2011年1月销售数据.txt")
    json_file_reader = JsonFileReader("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/03_Python第三阶段/数据分析案例/2011年2月销售数据JSON.txt")
    list1 = text_file_reader.read_data()
    list2 = json_file_reader.read_data()

    for l in list1:
        print(f"list1:{l}")

    for l in list2:
        print(f"list2:{l}")

111、数据分析案例步骤二——数据计算

"""
面向对象,数据分析案例,主业务逻辑代码
实现步骤:
1.设计一个类,可以完成数据的封装
2.设计一个抽象类,定义文件读取的相关功能,并使用子类实现具体的功能
3.读取文件,生产数据对象
4.进行数据需求的逻辑计算(计算每一天的销售额)
5.通过 PyEcharts 进行图形绘制
"""

from file_define_108 import FileReader, TextFileReader, JsonFileReader
from data_define_108 import Record
from typing import List

text_file_reader = TextFileReader("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/03_Python第三阶段/数据分析案例/2011年1月销售数据.txt")
json_file_reader = JsonFileReader("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/03_Python第三阶段/数据分析案例/2011年2月销售数据JSON.txt")

jan_data: List[Record] = text_file_reader.read_data()
feb_data: List[Record] = json_file_reader.read_data()

# 将 2 个月份的数据合并为 1 个 list 来存储
all_data: List[Record] = jan_data + feb_data

# 开始进行数据计算
# {"2011-01-01": 1534, "2011-01-02": 300, "2011-01-03": 650}
data_dict = {}
for record in all_data:
    if record.date in data_dict.keys():
        # 当前日期已经有记录了,所以和老记录做累加即可
        data_dict[record.date] += record.money
    else:
        data_dict[record.date] = record.money

print(data_dict)

112、数据分析案例步骤3——可视化开发

"""
面向对象,数据分析案例,主业务逻辑代码
实现步骤:
1.设计一个类,可以完成数据的封装
2.设计一个抽象类,定义文件读取的相关功能,并使用子类实现具体的功能
3.读取文件,生产数据对象
4.进行数据需求的逻辑计算(计算每一天的销售额)
5.通过 PyEcharts 进行图形绘制
"""

from file_define_108 import FileReader, TextFileReader, JsonFileReader
from data_define_108 import Record
from typing import List
from pyecharts.charts import Bar
from pyecharts.options import *
from pyecharts.globals import ThemeType

text_file_reader = TextFileReader("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/03_Python第三阶段/数据分析案例/2011年1月销售数据.txt")
json_file_reader = JsonFileReader("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/03_Python第三阶段/数据分析案例/2011年2月销售数据JSON.txt")

jan_data: List[Record] = text_file_reader.read_data()
feb_data: List[Record] = json_file_reader.read_data()

# 将 2 个月份的数据合并为 1 个 list 来存储
all_data: List[Record] = jan_data + feb_data

# 开始进行数据计算
# {"2011-01-01": 1534, "2011-01-02": 300, "2011-01-03": 650}
data_dict = {}
for record in all_data:
    if record.date in data_dict.keys():
        # 当前日期已经有记录了,所以和老记录做累加即可
        data_dict[record.date] += record.money
    else:
        data_dict[record.date] = record.money

# print(data_dict)

# 可视化开发
bar = Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(list(data_dict.keys()))           # 添加 x 轴的数据
bar.add_yaxis("销售额", list(data_dict.values()), label_opts=LabelOpts(is_show=False))  # 添加了 y 轴数据
bar.set_global_opts(
    title_opts=TitleOpts(title="每日销售额")
)

bar.render("每日销售额柱状图.html")

结果展示:

113、数据库介绍

数据库是什么?有什么作用呢?

数据库就是指数据存储的库,作用就是组织数据并存储数据。

数据库如何组织数据呢

按照:库 -> 表 -> 数据 三个层级进行组织

数据库软件

数据库软件就是提供库 -> 表 -> 数据,这种数据组织形式的工具软件,也称之为数据库管理系统。

常见的数据库软件有:Oracle、MySQL、SQL Server、PostgreSQL、SQLite,课程以 MySQL 软件为基础进行学习。

数据库和 SQL 的关系

数据库是用来存储数据的,在这个过程中,会涉及到:

  • 数据的新增
  • 数据的删除
  • 数据的修改
  • 数据的查询
  • 数据库、数据表的管理

等等

而SQL语言,就是一种对数据库、数据进行操作、管理、查询的工具。

使用数据库软件去获得库 -> 表 -> 数据,这种数据组织、存储的能力

并借助SQL语言,完成对数据的增删改查等操作

114、MySQL 的安装

下载地址

1、下载

在这里插入图片描述

2、安装

在这里插入图片描述

3、配置环境变量

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4、验证

将MySQL安装目录的bin文件夹的路径,复制进入即可,通过cmd命令提示符,输入:

mysql -uroot -p

回车后输入密码即可。
在这里插入图片描述

115、使用图形化工具操作MySQL数据库软件

跨平台、开源、免费的图形化工具:DBeaver,下载地址

安装

在这里插入图片描述

在这里插入图片描述

连接MySQL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/751807.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于LMS自适应滤波的窄带信号宽带噪声去除(MATLAB R2021B)

数十年的研究极大的发展了自适应滤波理论,自适应滤波理论已经成为信号处理领域研究的热点之一。从理论上讲,自适应滤波问题没有唯一解。为了得到自适应滤波器及其应用系统,可以根据不同的优化准则推导出许多不同的自适应理论。目前该理论主要…

【C语言】字符/字符串+内存函数

目录 Ⅰ、字符函数和字符串函数 1 .strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 11.字符函数 12. 字符转换函数 Ⅱ、内存函数 1 .memcpy 2.memmove 3.memcmp 4.memset Ⅰ、字符函数和字符串函数 1 .strlen 函数原型&…

Java热门技术点总结:Lambda表达式与Stream API

第一部分:Lambda表达式 1. 简介 Lambda表达式是Java 8引入的一个非常重要的特性,它提供了一种简洁、灵活的函数式编程方式。Lambda表达式允许我们将函数作为参数传递,极大的简化了代码的编写。 2. 基本语法 Lambda表达式的基本语法如下&a…

聚类模型的算法性能评价

一、概述 作为机器学习领域的重要内容之一,聚类模型在许多方面能够发挥举足轻重的作用。所谓聚类,就是通过一定的技术方法将一堆数据样本依照其特性划分为不同的簇类,使得同一个簇内的样本有着更相近的属性。依不同的实现策略,聚类…

目标检测之YoloV1

一、预测阶段(前向推断) 在预测阶段Yolo就相当于一个黑箱子,输入的是448*448*3的图像,输出是7*7*30的张量,包含了所有预测框的坐标、置信度和类别 为什么是7*7*30呢? --将输入图像划分成s*s个grid cell&a…

stm32 No traget connected/debug识别不到串口的问题

关于stm32串口识别不到,第一步先确定是否线接错(stlink与stm32接口对应),如果确认接线没有问题的话,可以使用以下方法,成功率较高。 首先将stlink的boot0置1,就是把跳线帽换到高电平这一侧&…

专业技术!最新氧化物异质结纳米制备技术

网盘 https://pan.baidu.com/s/1vjO2yLxm638YpnqDQmX7-g?pwd3at5 MOF衍生的B_A_B结构氧化物异质结及其制备方法和应用.pdf 二硫化钼-硫化镉纳米复合材料及其制备方法和应用.pdf 具有异质界面的耐辐照复合薄膜及其制备方法与应用.pdf 基于异质结双界面层纳米材料的复合介电薄膜…

基于单片机和LabVIEW 的远程矿井水位监控系统设计

摘要 : 针 对 现 有 矿 井 水 位 监 控 系 统 存 在 结 构 复 杂 和 不 能 远 程 监 控 的 问 题 , 设计了基于单片机和LabVIEW 的远程矿井水位监控系统 , 详…

获取当前操作系统的名称platform.system()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 获取当前操作系统的名称 platform.system() [太阳]选择题 在Python中,platform.system() 函数被用来获取什么信息? import platform print("【执行】platform.s…

Python数据分析第二课:conda的基础命令

Python数据分析第二课:conda的基础命令 1.conda是什么? conda是一个开源的包管理系统,可以帮助我们进行管理多个不同版本的软件包,还可以帮助我们建立虚拟环境,以便对不同的项目进行隔离。 简单来说,conda是一个软…

充电站,正在杀死加油站

最近,深圳公布了一组数据,深圳的超级充电站数量已超过传统加油站数量,充电枪数量也已超过加油枪数量。 从全国范围看,加油站关停的速度在加快。 充电站正在杀死加油站。 加油站,未来何去何从? 01. 减少 我…

概率论论文(关于“到课率”的贝叶斯推理应用)

概率论论文(关于“到课率”的贝叶斯推理应用) 全条件概率公式和贝叶斯公式趣味识 思考1: (引自贝叶斯公式及朴素贝叶斯分类算法应用初探) “狼来了”的故事想必大家都知道,小孩子第三次对村民说狼来了的时候,村民们没有相信他的话&#xff0…

windows 10 通过wsl安装ubuntu子系统教程

本章教程,主要记录我昨天通过Windows10 wsl安装Ubuntu的安装过程。其中遇到很多问题。 一、确定是否满足条件 系统要求操作系统版本: 需要 Windows 10 版本 1903 或更高版本,且操作系统内部版本号为 18362 或更高。 建议使用最新版本的 Windows 10 以获得最佳性能和最新功能…

VUE项目安全漏洞扫描和修复

npm audit 1、npm audit是npm 6 新增的一个命令,可以允许开发人员分析复杂的代码并查明特定的漏洞。 2、npm audit名称执行,需要包package.json和package-lock.json文件。它是通过分析 package-lock.json 文件,继而扫描我们的包分析是否包含漏洞的。 …

AI数据分析007:根据Excel表格数据绘制柱形图

文章目录 一、介绍二、输入内容三、输出内容一、介绍 将Excel文件中2013年至2019年间线上图书的销售额,以条形图的形式呈现,每个条形的高度代表相应年份的销售额,同时在每个条形上方标注具体的销售额数值 二、输入内容 在deepseek中输入提示词: 你是一个Python编程专家,…

【PostgreSQL】守护数据安全:事务与数据完整性管理

目录 事务管理:确保操作的原子性 事务的概念与重要性 事务的启动与提交 事务的回滚(ROLLBACK)( 数据一致性与隔离级别 隔离级别的解释 设置隔离级别 错误处理与事务的高级策略 异常处理(SAVEPOINT & EXCE…

算法刷题日志 —— 数组和位运算

文章目录 [461. 汉明距离](https://leetcode.cn/problems/hamming-distance/submissions/542447020/)[448. 找到所有数组中消失的数字](https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/submissions/)[136. 只出现一次的数字](https://leetcode.cn/pro…

C# 超简单的离线人脸识别库 - ViewFaceCore

项目介绍 ViewFaceCore是一个基于 SeetaFace6 的 .NET 人脸识别解决方案。 项目特点 开源(MIT license)、免费、简单的离线人脸识别库。 跨平台(适用于 Windows、MacOS 和 Linux )。 .NET 框架 和 操作系统 封装完善的NuGet包…

openssl 命令行生成密钥对,生成hash,PSS填充签名,校验

生成密钥对(RSA4096) openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:4096 openssl rsa -pubout -in private_key.pem -out public_key.pem将源文件data.txt生成hash值(sha-256) openssl dgst -sha256 -binary data.t…

数字黄金 vs 全球计算机:比特币与以太坊现货 ETF 对比

撰文:Andrew Kang 编译:J1N,Techub News 本文来源香港Web3媒体:Techub News 比特币现货 ETF 的通过为许多新买家打开了进入加密货币市场的大门,让他们可以在投资组合中配置比特币。但以太坊现货 ETF 的通过&#xf…