首页 > 编程语言 >用python实现数据处理,绘图的综合案例

用python实现数据处理,绘图的综合案例

时间:2023-02-20 21:01:38浏览次数:34  
标签:__ python self list record 绘图 数据处理 dict data

首先创建一个类

class Record:
def __init__(self,date,order_id,money,province):
self.date = date #订单日期
self.order_id =order_id #订单编号
self.money = money #订单金额
self.province = province #订单地点

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

其次再创建父文件和子文件

from main import Record
import json
class FileReader:
def read_data(self) ->list[Record]:
"""读取文件的数据,读到的每一条数据都转换为Record对象"""
pass

class TextFileReader(FileReader):
def __init__(self,path):
self.path = path #定义成员变量记录文件路径
#复写(实现抽象方法)父类的方法

def read_data(self) ->list[Record]:
f=open(self.path,"r",encoding = "UTF-8")
record_list=[]
for line in f.readlines():
line= line.strip() #去掉回车符号
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) ->list[Record]:
f=open(self.path,"r",encoding = "UTF-8")
record_list=[]
for line in f.readlines():
dict_data = json.loads(line)
record = Record(dict_data["date"],dict_data["order_id"],int(dict_data["money"]),dict_data["province"])
record_list.append(record)
f.close()
return record_list
if __name__ == '__main__':
Tex= TextFileReader("D:/2011年1月销售数据.txt")
Json=JsonFileReader("D:/2011年2月销售数据JSON.txt")
list1=Tex.read_data()
list2=Json.read_data()
for l in list1:
print(l)
for l in list2:
print(l)

实现绘图

from main import  Record
from test import FileReader,TextFileReader,JsonFileReader
from pyecharts.charts import Bar
from pyecharts.options import *

Tex= TextFileReader("D:/2011年1月销售数据.txt")
Json=JsonFileReader("D:/2011年2月销售数据JSON.txt")

jan_data=Tex.read_data()
feb_data=Json.read_data()
#将1月份2月份的数据合并成一个list来存储
all_data = jan_data+feb_data
#开始进行数据计算
#{”2011-01-01“:1534,”2012-01-02“:300,”2011-01-03“:650}
data_dict={}
for record in all_data:
if record.date in data_dict:
#当前日期已经有记录了,所以和老记录做累加即可
data_dict[record.date]+=record.money
else:
data_dict[record.date] = record.money

bar=Bar()
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()

用python实现数据处理,绘图的综合案例_数据

我看了四遍,才看懂,但是也还是不太会自己写,所以需要小伙伴们自己动手试试,完结,撒花,Keep going!

标签:__,python,self,list,record,绘图,数据处理,dict,data
From: https://blog.51cto.com/u_15760583/6074454

相关文章

  • python可变类型与不可变类型
    一、可变数据类型和不可变数据类型可变和不可变都是基于内存地址来说的。不可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这......
  • python多种赋值方式
    一、链式赋值例1a=10b=10c=10d=10print(f'a:{a},b:{b},c:{c},d:{d}')输出a:10,b:10,c:10,d:10例2a=b=c=d=10print(f'a:{a},b:{b},c:......
  • Conda+VScode配置Python开发环境
    Conda配置与常用指令1、查看conda与Python相关信息查看Python路径wherepython查看conda版本conda--version查看conda详细信息condainfo2、换源更换为清华......
  • 细说python装饰器
    前言什么是装饰器实现原理实现效果适用场景装饰器:装饰器的写法装饰器的拓展装饰器的模板什么是装饰器呢?就是在特定条件下为某些函数再不改动函数体的时候为函数新添加一......
  • 这一次,Python 真的有望告别 GIL 锁了?
    Python中有一把著名的锁——全局解释器锁(GlobalInterpreterLock,简写GIL),它的作用是防止多个本地线程同时执行Python字节码,这会导致Python无法实现真正的多线程执行......
  • python内置装饰器
    python有三个内置装饰器:@property,@classmethod,@staticmethod(一)@property这是用来修饰类的方法的,可以把类的方法变成可直接读/写的属性 相当于get和set方法我们......
  • Python 学习02 内置数据类型
    ......
  • Yum系列系统升级python版本
    问题描述系统可能携带的是python3.6,而自动化开发基线是python3.7就会导致部分包无法使用等问题升级python3.7查看当前系统python版本ls-al/usr/bin|greppython......
  • PYTHON将图片插入到excel
    一、案例1:insert_imageimportxlsxwriterbook=xlsxwriter.Workbook('E:\\test.xlsx')sheet=book.add_worksheet('demo')sheet.insert_image('D4','E:\\001.jpg')b......
  • python如何读取excel表数据
    @目录python读取excel表数据的方法:完整的程序代码python读取excel表数据的方法:首先安装Excel读取数据的库xlrd;然后获取Excel文件的位置并且读取进来;接着读取指定的行和列......