Python面向对象实现数据分析的实例详解
更新时间:2023年01月03日 11:50:53 作者:阳862
这篇文章主要通过几个实例为大家详细介绍了Python面向对象实现数据分析的方法,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
案例
某公司,有2份数据文件,现需要对其进行分析处理,计算每日的销售额并以柱状图表的形式进行展示。



需求分析

实现步骤
- 设计一个类,可以完成数据的封装
- 设计一个抽象类,定义文件读取的相关功能,并使用子类实现具体功能
- 读取文件,生产数据对象
- 进行数据需求的逻辑计算(计算每一天的销售额)
- 通过PyEcharts进行图形绘制
代码
实例1
"""
数据定义的类
"""
class Record:
def __init__(self,data,order_id,money,province):
self.data=data
self.order_id=order_id
self.money=money
self.province=province
def __str__(self):
return f"{self.data},{self.order_id},{self.money},{self.province}"
实例2
"""
和文件相关的类定义
"""
import json
from data_define import Record
class FileReader:
def read_data(self):
#读取文件的数据,读取到的每一条数据都转换为Record对象,将它们都封装到list内返回即可
pass
class TextFileReader(FileReader):
def __init__(self,path):
self.path=path
#复写(实现抽象方法)父类的方法
def read_data(self):
f=open(self.path,"r",encoding="utf-8")
record_list=[]
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)
f.close()
return record_list
class JsonFileReader(FileReader):
def __init__(self,path):
self.path=path
#复写(实现抽象方法)父类的方法
def read_data(self):
f=open(self.path,"r",encoding="utf-8")
record_list=[]
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("D:/2011年1月销售数据.txt")
list1=text_file_reader.read_data()
for l in list1:
print(l)
print("========================================================================")
json_file_reader=JsonFileReader("D:/2011年2月销售数据JSON.txt")
list2=json_file_reader.read_data()
for l in list2:
print(l)
实例3
from pyecharts.charts import Bar
from pyecharts.options import *
from pyecharts.globals import *
from file_define import FileReader,TextFileReader,JsonFileReader
from data_define import Record
text_file_reader=TextFileReader("D:/2011年1月销售数据.txt")
json_file_reader=JsonFileReader("D:/2011年2月销售数据JSON.txt")
jan_data=text_file_reader.read_data()
feb_data=json_file_reader.read_data()
all_data:list[Record]=jan_data+feb_data
#开始进行数据计算
data_dict={}
for record in all_data:
if record.data in data_dict.keys():
data_dict[record.data]+=record.money
else:
data_dict[record.data]=record.money
#可视化
bar = Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(list(data_dict.keys()))
bar.add_yaxis("销售额",list(data_dict.values()),label_opts=LabelOpts(is_show=False))
bar.set_global_opts(
title_opts=TitleOpts(title="每日销售额")
)
bar.render("每日销售额柱状图.html")

可视化

数据集
链接:https://pan.baidu.com/s/1P3n-gvooVvmHEPak-xmkKg
提取码:hxvn
到此这篇关于Python面向对象实现数据分析的实例详解的文章就介绍到这了,更多相关Python数据分析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
这篇文章主要介绍了探秘TensorFlow 和 NumPy 的 Broadcasting 机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-03-03
Python利用Rasa框架和SMTPlib库实现邮件回复助手
在现代办公场景中,处理大量邮件是一项既耗时又容易出错的任务,本文将详细介绍如何使用Python的Rasa框架和SMTPlib库建一个智能的邮件自动回复助手,感兴趣的可以了解下2025-04-04
编写Python脚本把sqlAlchemy对象转换成dict的教程
这篇文章主要介绍了编写Python脚本把sqlAlchemy对象转换成dict的教程,主要是基于Python的model类构建一个转换的方法,需要的朋友可以参考下2015-05-05
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
这篇文章主要介绍了Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法,涉及Python数值运算及图形绘制相关操作技巧,需要的朋友可以参考下2018-02-02


最新评论