赞
踩
大家好,给大家分享一下利用python进行数据分析案例,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
目录
注:数据集在最后
某公司,有2份数据文件,现需要对其进行分析处理,计算每日的销售额并以柱状图表的形式进行展示。
- """
- 数据定义的类
- """
-
- 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}"
- """
- 和文件相关的类定义
- """
- 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)
- 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/112SC1eN5wCAlp16E4EXiIg
提取码:1234
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。