app开发者平台在数字化时代的重要性与发展趋势解析
1441
2022-11-09
pandas从Excel中读取数据 matplotlib绘图 python结构体(类)学习
任务,从excel中读取啤酒销售订单,然后算出每个品牌的铺店率。我的想法是按照铺店率从大到小排序作为横坐标,然后纵坐标是销售量。那么 常理先搞定头文件
import matplotlib.pyplot as pltimport matplotlib as mplimport pandas as
用pandas读取excel中文也可以,之前直接用xlrd折腾了很久中文读入不了。 因为要在图片中显示中文 所以 需要对matplotlib进行设置,中文设置如下
mpl.rcParams['font.sans-serif'] = ['KaiTi']mpl.rcParams['font.serif'] = ['KaiTi']
我的环境是win10 补充一些Python基础知识
a={}#创建字典a=[]#创建listclass node(object): def __init__(self):#重载初始化的过程 self.brand='';self.coverage=0; self.sales=0;self.sales_num=0; self.dict={}; def __lt__(self, other):#重载运算符 return self.coverage>other.coverage
其他Python里面的类所有得函数名称需要去百度搜索一下
import matplotlib.pyplot as pltimport matplotlib as mplmpl.rcParams['font.sans-serif'] = ['KaiTi']mpl.rcParams['font.serif'] = ['KaiTi']import numpy as npimport pandas as pdclass node(object): def __init__(self): self.brand='';self.coverage=0; self.sales=0;self.sales_num=0; self.dict={}; def __lt__(self, other): return self.coverage>other.coverageexcel_='bud.xlsx';dict={}data1= pd.read_excel(excel_,sheet_name='菜品数据')brand_name=list(data1['beer_brand_enum'].values)poc_name=list(set(data1['poc_name_dummy'].values))t=set(brand_name);t=list(t)data=[node() for i in range(len(t))]for i in range(len(t)): data[i].brand=t[i] dict[t[i]]=i for j in range(len(poc_name)): data[i].dict[poc_name[j]]=0poc_name1=poc_namepoc_name=list(data1['poc_name_dummy'].values)sales_num=list(data1['sales_volume_num'].values)sales=list(data1['sales_value_cny_amt'].values)def check(x): t=dict[brand_name[x]] # print(t);print(poc_name[x]) data[t].sales_num+=sales_num[x] data[t].sales+=sales[x] if data[t].dict[poc_name[x]]==0: data[t].dict[poc_name[x]]=1 data[t].coverage+=1print(len(brand_name))for i in range(len(brand_name)): check(i)for i in range(len(t)): data[i].coverage=data[i].coverage/(len(poc_name1)+1) #print(data[i].brand,data[i].coverage,data[i].sales,data[i].sales_num)data.sort()for i in range(len(t)): print(data[i].brand,data[i].coverage,data[i].sales,data[i].sales_num)x=[];y=[];x1=[];y1=[];for i in range(len(t)): x.append(data[i].brand);x1.append(data[i].brand) y.append(data[i].sales_num/1000);y1.append(data[i].sales)plt.figure(figsize=(len(t),10))plt.bar(x, y, align = 'center')#plt.bar(x1, y1, color = 'g', align = 'center')plt.title(u'覆盖率与销售量的关系',fontsize=65,color='r')plt.ylabel(u'销售额(千瓶)',fontsize=65)plt.xlabel(u'品牌(按照覆盖率从大到小排序)',fontsize=65)plt.show()# for i in range(len(brand_name)):# print(brand_name[i])
http://elijahqi.win/archives/4038
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~