import pandas as pd import numpy as np catering_sale='D:\大三下\大数据实验课\data\catering_sale.xls' data=pd.read_excel(catering_sale,names=['data','sale']) bins=[0,500,1000,1500,2000,2500,3000,3500,4000] labels=['[0,500)','[5000,1000)','[1000,1500)','[1500,2000)','[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] #做标签的工作 data['sale分层']=pd.cut(data.sale,bins,labels=labels) print(data)
#groupby做统计的工作,实现数据的分组和运算 aggResult=data.groupby(by=['sale分层'])['sale'].agg([('sale', np.size)]) print(aggResult)
pAggResult=round(aggResult/aggResult.sum(),2)*100 print(pAggResult) import matplotlib.pyplot as plt plt.figure(figsize=(10,6)) plt.title("3128") pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10,color='r') plt.rcParams['font.sans-serif']=['SimHei'] plt.title("频率分布直方图(3128)") plt.show()
#绘制饼图
import pandas as pd import matplotlib.pyplot as plt catering_sale='D:\大三下\大数据实验课\data\catering_dish_profit.xls' data=pd.read_excel(catering_sale)#读取数据 #绘制饼图 x=data['盈利'] labels=data['菜品名'] plt.figure(figsize=(8,6))#设置画布大小 plt.pie(x,labels=labels)#绘制饼图 plt.rcParams['font.sans-serif']='SimHei' plt.title('销售量分布(饼图)(3128)')#设置标题 plt.show()
#绘制条形图 x=data['菜品名'] y=data['盈利'] plt.figure(figsize=(8,4))#设置画布大小 plt.bar(x,y) plt.rcParams['font.sans-serif']='SimHei' plt.xlabel('类型')#设置x轴坐标 plt.ylabel('销量')#设置y轴坐标 plt.title('销量分布(条形图)(3128)') plt.show()
import pandas as pd import matplotlib.pyplot as plt data=pd.read_excel("D:\大三下\大数据实验课\data\dish_sale.xls") plt.figure(figsize=(8,4)) plt.plot(data['月份'],data['A部门'],color='green',label='A部门',marker='o') plt.plot(data['月份'],data['B部门'],color='red',label='B部门',marker='s') plt.plot(data['月份'],data['C部门'],color='skyblue',label='C部门',marker='x') plt.legend() #显示图例 plt.ylabel('销售额(万元)') plt.title('不同部门各月份的销售对比情况(3128)') plt.show() #B部门各年份之间销售金额的比较 data=pd.read_excel("D:\大三下\大数据实验课\data\dish_sale_b.xls") plt.figure(figsize=(8,4)) plt.plot(data['月份'],data['2012年'],color='green',label='2012年',marker='o') plt.plot(data['月份'],data['2013年'],color='red',label='2013年',marker='s') plt.plot(data['月份'],data['2014年'],color='skyblue',label='2014年',marker='x') plt.legend() #显示图例 plt.ylabel('销售额(万元)') plt.title('不同部门各月份的销售对比情况(3128)') plt.show()
#数据统计量分析 import pandas as pd cetering_sale='D:\大三下\大数据实验课\data\catering_sale.xls' data=pd.read_excel(cetering_sale,index_col='日期')#读取数据,指定“日期”列 data=data[(data['销量']>400)&(data['销量']<5000)]#过滤异常数据 statistics=data.describe()#保存基本统计量 statistics.loc['range']=statistics.loc['max']-statistics.loc['min']#极差 statistics.loc['var']=statistics.loc['std']/statistics.loc['mean']#变异系数 statistics.loc['dis']=statistics.loc['75%']-statistics.loc['25%']#四分位数间距 print(statistics)
import pandas as pd import matplotlib.pyplot as plt df_normal=pd.read_csv("D:/大三下/大数据实验课/data/user.csv") plt.figure(figsize=(8,4)) plt.plot(df_normal["Date"],df_normal["Eletricity"]) plt.xlabel("日期") #设置x轴刻度间隔 x_major_locator=plt.MultipleLocator(7) ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) plt.ylabel("每日电量") plt.title("正常用户电量趋势(3128)") plt.rcParams['font.sans-serif']=['SimHei'] plt.show()
import numpy as np import matplotlib.pyplot as plt #linspace(a,b,c) a:初始值 b:结束值 c:元素数量(包括结束值) x=np.linspace(0,2*np.pi,50) y=np.sin(x) plt.title('绘制曲线图(3128)') plt.plot(x,y,'bp--') plt.show()
import matplotlib.pyplot as plt years=[2009,2010,2011,2012,2013,2014,2015,2016,2017] turnovers=[0.5,9.36,52,191,350,571,912,1027,1682] plt.figure() plt.scatter(years,turnovers,c='red',s=100,label='年份标签') plt.xticks(range(2008,2017,2)) plt.yticks(range(0,3200,800)) plt.xlabel("Year",fontdict={'size':16}) plt.ylabel("Number",fontdict={'size':16}) plt.title("散点图(3128)",fontdict={'size':20}) #legend标签位置 plt.legend(loc='best') plt.show()
import pandas as pd import numpy as np x=np.linspace(0,2*np.pi,endpoint=True) y=np.sin(x) plt.figure() plt.plot(x,y,'gp--') #绿色带星虚线 plt.xlabel("x",fontdict={'size':16}) plt.ylabel("y",fontdict={'size':16}) plt.legend("sin(x)") plt.title("曲线图(3128)") plt.show()
#饼图
import matplotlib.pyplot as plt #The slices will be crdered and plotted counter-clockwise labels='A','B','C','D'#定义标签 sizes=[25,30,35,10]#每一块的比例 colors=['yellowgreen','gold','lightskyblue','lightcoral']#每一块的颜色 explode=(0,0,0,0.2)#突出显示,这里仅仅突出显示第二块(即‘D’) plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.lf%%', shadow=True,startangle=90) plt.axis('equal')#显示为圆(避免比例压缩为椭圆) plt.show()
import matplotlib.pyplot as plt import numpy as np x=np.random.randn(800) #1000个服从正态分布的随机数 plt.hist(x,10)#分成10组绘制直方图 plt.title('随机数直方图(3128)') plt.show()
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False import numpy as np import pandas as pd x=pd.Series(np.exp(np.arange(20)))#原始数据 plt.figure(figsize=(8,9))#设置画布大小 axl=plt.subplot(2,1,1) x.plot(label='原始数据图',legend=True) plt.title('使用plot(logy=True)函数进行绘图(3128)') axl=plt.subplot(2,1,2) x.plot(logy=True,label='对数数据图',legend=True) plt.show()
#绘制误差棒图 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False import numpy as np import pandas as pd error=np.random.randn(10) #定义误差列 y=pd.Series(np.sin(np.arange(10)))#均值数值列 y.plot(yerr=error) #绘制误差图 plt.title('误差棒图(3128)') plt.show()
#绘制箱型图
import pandas as pd catering_sale='D:\大三下\大数据实验课\catering_sale.xls' #餐饮数据 data=pd.read_excel(catering_sale,index_col=u'日期') #读取数据,指定“日期”列为索引列 print(data.describe)
#异常值检测 import matplotlib.pyplot as plt #导入图像库 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 plt.figure() #建立图像 p=data.boxplot(return_type='dict') #画箱型图,直接使用DetaFrame的方法 x=p['fliers'][0].get_xdata() #‘flies’即为异常值的标签 y=p['fliers'][0].get_ydata() y.sort()#从小大大依次排序,该方法直接改变原对象 ''' 用annotate添加注释 其中有些相近的点,注释会出现重叠,难以看清,需要一些技巧来控制 以下参数都输经过调试过的,需要具体问题具体调试 ''' for i in range(len(x)): if i>0: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.05-0.8/(y[i]-y[i-1]),y[i])) else: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i])) plt.show() #展示箱型图
math_scores = np.array([71,65,70,96,64]) chinese_scores = np.array([84,75,68,83,57]) english_scores = np.array([55,78,76,91,64]) figure2 = plt.figure(figsize = (10, 5)) figure2.add_subplot(1,1,1) plt.xlabel("",fontsize = 14) plt.ylabel("平均分", fontsize = 14) plt.xticks(fontsize=14) plt.yticks(fontsize=14) plt.title("成绩条形图(3128)", fontsize=14) plt.rcParams["font.sans-serif"] = "SimHei" plt.rcParams["axes.unicode_minus"] = False category = ["1班", "2班", "3班", "4班", "5班"] index_category = np.arange(len(category)) bar_width = 0.25 plt.bar(index_category - bar_width, chinese_scores, width=bar_width, color=[0,0,1]) plt.bar(index_category, math_scores, width=bar_width, color=[0,1,0]) plt.bar(index_category + bar_width, english_scores, width=bar_width, color=[1,0,0]) plt.show()
通过本章学习数据认识到了数据质量分析要求先对数据检测是否存在缺失值和异常值;而数据特征分析要求我们在数据挖掘建模前,通过频率分布分析、对比分析、帕累托分析、周期性分析、相关性分析等方法,对采集的样本数据的特征进行分析,以了解数据的规律和趋势,为数据挖掘的后续环节提供支持。
数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。
数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
标签:基本,plt,python,data,sale,pd,np,import,绘制 From: https://www.cnblogs.com/c0902/p/17155379.html