数据探索

读取数据

1 import pandas as pd
2 catering_sale = 'D:\Python\数据处理/catering_sale.xls'  # 餐饮数据
3 data = pd.read_excel(catering_sale, index_col = u'日期')  # 读取数据,指定“日期”列为索引列
4 print(data)
5 print(data.describe(),data.describe().max()-data.describe().min())

 

 餐饮销额数据异常值检测

复制代码
 1 import matplotlib.pyplot as plt  # 导入图像库
 2 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
 3 plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
 4 
 5 plt.figure()  # 建立图像
 6 p = data.boxplot(return_type='dict')  # 画箱线图,直接使用DataFrame的方法
 7 x = p['fliers'][0].get_xdata()  #  'flies'即为异常值的标签
 8 y = p['fliers'][0].get_ydata()
 9 y.sort()  # 从小到大排序,该方法直接改变原对象
10 
11 for i in range(len(x)):
12     if i>0:
13         plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
14     else:
15         plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))
16 
17 plt.title('箱型图3152',fontsize=20)
18 plt.show()  # 展示箱线图
复制代码

 

 

复制代码
 1 import pandas as pd
 2 import numpy as np
 3 catering_sale = 'D:\Python\数据处理/catering_fish_congee.xls'  # 餐饮数据
 4 data = pd.read_excel(catering_sale,names=['date','sale'])  # 读取数据,指定“日期”列为索引
 5 print(data.describe())
 6 
 7 bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
 8 labels = ['A_lei','[500,1000)','[1000,1500)','[1500,2000)',
 9        '[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] 
10 data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
11 print(data)
12 
13 aggResult = data.groupby('sale分层').agg({'sale':'count'})
14 print(aggResult)
15 
16 pAggResult = round(aggResult/aggResult.sum(), 2, )
复制代码

 

 

1 import matplotlib.pyplot as plt
2 plt.figure(figsize=(10,6))  # 设置图框大小尺寸
3 pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10)  # 绘制频率直方图
4 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
5 plt.title('季度销售额频率分布直方图3152',fontsize=20)
6 plt.show()

 

不同菜品在某段时间的销售量的分布情况

复制代码
 1 import pandas as pd
 2 import matplotlib.pyplot as plt
 3 catering_dish_profit = 'D:\Python\数据处理/catering_dish_profit.xls'  # 餐饮数据
 4 data = pd.read_excel(catering_dish_profit)
 5 
 6 x =data['盈利']
 7 labels = data['菜品名']
 8 plt.figure(figsize=(8,6))
 9 plt.pie(x,labels=labels)
10 plt.rcParams['font.sans-serif'] = 'SimHei'
11 plt.title('菜品销售分布(饼图)3152',fontsize=20)
12 plt.axis('equal')
13 plt.show()
复制代码

 

 

复制代码
1 x=data['菜品名']
2 y=data['盈利']
3 plt.figure(figsize=(8,4))
4 plt.bar(x,y)
5 plt.rcParams['font.sans-serif']='SimHei'
6 plt.xlabel('菜品')
7 plt.ylabel('销量')
8 plt.title('菜品销售量分布(条形图)3152',fontsize=20)
9 plt.show()
复制代码

 

 不同部门各月份的销售对比情况

复制代码
 1 #部门之间
 2 import pandas as pd
 3 import matplotlib.pyplot as plt
 4 data=pd.read_excel("D:\Python\数据处理\dish_sale.xls")
 5 plt.figure(figsize=(8,4))
 6 plt.plot(data['月份'],data['A部门'],color='green',label='A部门',marker='o')
 7 plt.plot(data['月份'],data['B部门'],color='red',label='B部门',marker='s')
 8 plt.plot(data['月份'],data['C部门'],color='skyblue',label='C部门',marker='x')
 9 plt.legend()
10 plt.ylabel('销售额(万元)')
11 plt.title('部门之间销售金额比较3152',fontsize=20)
12 plt.show()
13 
14 #B部门
15 data=pd.read_excel("D:\Python\数据处理\dish_sale_b.xls")
16 plt.figure(figsize=(8,4))
17 plt.plot(data['月份'],data['2012年'],color='green',label='2012年',marker='o')
18 plt.plot(data['月份'],data['2013年'],color='red',label='2013年',marker='s')
19 plt.plot(data['月份'],data['2014年'],color='skyblue',label='2014年',marker='x')
20 plt.legend()
21 plt.ylabel('销售额(万元)')
22 plt.title('B部门各年份之间销售金额的比较3152',fontsize=20)
23 plt.show()
复制代码

 某单位日用电量预测分析

复制代码
 1 import pandas as pd
 2 import matplotlib.pyplot as plt
 3 
 4 df_normal = pd.read_csv("D:\Python\数据处理/user.csv")
 5 plt.figure(figsize=(8,4))
 6 plt.plot(df_normal["Date"],df_normal["Eletricity"])
 7 plt.xlabel("日期")
 8 #设置x轴刻度间隔
 9 x_major_locator = plt.MultipleLocator(7)
10 ax=plt.gca()
11 ax.xaxis.set_major_locator(x_major_locator)
12 plt.ylabel("每日电量")
13 plt.title("正常用户电量趋势3152",fontsize=20)
14 plt.rcParams['font.sans-serif']=['SimHei']
15 plt.show()
16 
17 #窃电用户用电趋势分析
18 df_steal = pd.read_csv("D:\Python\数据处理/Steal user.csv")
19 plt.figure(figsize=(10,9))
20 plt.plot(df_steal["Date"],df_steal["Eletricity"])
21 plt.xlabel("日期")
22 plt.ylabel("日期")
23 x_major_locator=plt.MultipleLocator(7)
24 ax=plt.gca()
25 ax.xaxis.set_major_locator(x_major_locator)
26 plt.title("窃电用户用电趋势3152",fontsize=20)
27 plt.rcParams['font.sans-serif']=['SimHei']
28 plt.show()
复制代码

 

 

 

 

 

 菜品盈利数据帕累托图

复制代码
 1 import pandas as pd
 2 dish_profit = 'D:\Python\数据处理/catering_dish_profit.xls'
 3 data=pd.read_excel(dish_profit,index_col='菜品名')
 4 data=data['盈利'].copy()
 5 data.sort_values(ascending=False)
 6 
 7 import matplotlib.pyplot as plt
 8 plt.rcParams['font.sans-serif']=['SimHei']
 9 plt.rcParams['axes.unicode_minus']=False
10 plt.figure()
11 data.plot(kind='bar')
12 plt.ylabel('盈利(无)')
13 p=1.0*data.cumsum()/data.sum()
14 p.plot(color='r',secondary_y=True,style='-o',linewidth=2)
15 plt.annotate(format(p[6],'.4%'),xy=(6,p[6]),xytext=(6*0.9,p[6]*0.9),arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))#图上标注
16 plt.ylabel('盈利(比例')
17 plt.title("菜品盈利数据帕累托图3152",fontsize=20)
18 plt.rcParams['font.sans-serif']=['SimHei']
19 plt.show()
复制代码

 

 

 

复制代码
 1 import matplotlib.pyplot as plt
 2 plt.rcParams['font.sans-serif']=['SimHei']
 3 plt.rcParams['axes.unicode_minus']=False
 4 plt.figure(figsize=(7,5))
 5 
 6 import numpy as np
 7 x=np.linspace(0,2*np.pi,50)
 8 y=np.sin(x)
 9 plt.plot(x,y,'bp--')
10 plt.title("正弦曲线图3152",fontsize=20)
11 plt.show()
复制代码

 

 

 

1 labels='Frogs','Hogs','Dogs','Logs'
2 sizes=[15,30,45,10]
3 colors=['yellowgreen','gold','lightskyblue','lightcoral']
4 explode=(0,0.1,0,0)
5 plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.lf%%',shadow=True,startangle=90)
6 plt.axis('equal')#显示为圆
7 plt.title("饼图3152",fontsize=20)
8 plt.show()

 

 

1 import numpy as np
2 x=np.random.randn(1000)
3 plt.hist(x,10)
4 plt.title("二维条形直方图3152",fontsize=20)
5 plt.show()

 

 

1 import numpy as np
2 import pandas as pd
3 x = np.random.randn(1000)  # 1000个服从正态分布的随机数
4 D = pd.DataFrame([x, x+1]).T  # 构造两列的DataFrame
5 D.plot(kind = 'box')  # 调用Series内置的绘图方法画图,用kind参数指定箱型图box
6 plt.title("箱型图3152",fontsize=20)
7 plt.show()

 

 

复制代码
 1 import numpy as np
 2 import pandas as pd
 3 x=pd.Series(np.exp(np.arange(20)))
 4 plt.figure(figsize=(8,9))
 5 axl=plt.subplot(2,1,1)
 6 x.plot(label='原始数据图',legend=True)
 7 plt.title("原始数据图3152",fontsize=20)
 8 axl=plt.subplot(2,1,2)
 9 x.plot(logy=True,label='对数数据图',legend=True)
10 plt.title("对数数据图3152",fontsize=20)
11 plt.show()
复制代码

 

 

1 import numpy as np
2 import pandas as pd
3 
4 error=np.random.randn(10)
5 y=pd.Series(np.sin(np.arange(10)))
6 y.plot(yerr=error)
7 plt.title("误差条形图3152",fontsize=20)
8 plt.show()

 总结:

检测异常值和缺失值 → 数据特征分析(频率分布分析、对比分析、帕累托分析、周期性分析、相关性分析等)

Matplotlib、pandas 、numpy + 规范(中文、正负号)+ 读取数据 + …… + 横纵坐标、标题

posted @   新祁  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示