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數據分析內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 獲取一個值在某個區(qū)間的指定倍數的值方法
今天小編就為大家分享一篇python 獲取一個值在某個區(qū)間的指定倍數的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11