数据分析(数据挖掘与分析)
#分析数据,将数据可视化
import pandas as pd catering_sale = r'C:\Users\86138\Downloads\data\数据挖掘与分析\catering_sale.xls' # 餐饮数据 data = pd.read_excel(catering_sale, index_col = u'日期') # 读取数据,指定“日期”列为索引列 print(data) print(data.describe(),data.describe().max()-data.describe().min())

# 代码3-2 餐饮销额数据异常值检测
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') # 画箱线图,直接使用DataFrame的方法
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.title('餐饮销额数据箱型图_3039')
plt.show() # 展示箱线图
箱型图如下:
import pandas as pd
import numpy as np
catering_sale = r'C:\Users\86138\Downloads\data\数据挖掘与分析\catering_fish_congee.xls' # 餐饮数据
data = pd.read_excel(catering_sale,names=['date','sale']) # 读取数据,指定“日期”列为索引
bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)',
'[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)']
data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
# aggResult = data.groupby(by=['sale分层'])['sale'].agg({"sale","sale"})
aggResult = data.groupby('sale分层').agg({'sale':'count'})
pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100
import matplotlib.pyplot as plt
plt.figure(figsize=(10,6)) # 设置图框大小尺寸
pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10) # 绘制频率直方图
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.title('季度销售额频率分布直方图_3039',fontsize=20)
plt.show()
直方图如下:
#不同菜品在某段时间的销售量分布情况
import pandas as pd
import matplotlib.pyplot as plt
catering_dish_profit = r'C:\Users\86138\Downloads\data\数据挖掘与分析\catering_dish_profit.xls'
# 餐饮数据
data = pd.read_excel(catering_dish_profit) # 读取数据,指定“日期”列 为索引
# 绘制饼图
x = data['盈利']
labels = data['菜品名']
plt.figure(figsize=(8, 6))
# 设置画布大小
plt.pie(x,labels=labels) #饼状图
# 绘制饼图
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.title('菜品销售量分布(饼图)_3041')
# 设置标题
plt.axis('equal')
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('菜品销售量分布(条形图)_3039')# 设置标题
plt.show()
饼状图如下:

条形图如下:

#不同部门在各月份的销售对比情况
#部门之间销售金额比较
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel(r"C:\Users\86138\Downloads\data\数据挖掘与分析\dish_sale.xls")
plt.figure(figsize=(12,8))
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.xlabel('月份')
plt.title("不同部门在各月份的销售对比情况_3039")
plt.show()
折线图如下:
#正弦函数虚线图
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi,50)
y = np.sin(x)
plt.plot(x,y, 'bp--')
plt.rcParams['font.sans-serif']= 'SimHei'
plt.title('虚线图_3039',fontsize=20)
plt.show()
虚线图:
posted on 2023-02-26 20:02 蓝螃蟹Karry0921 阅读(91) 评论(0) 收藏 举报
浙公网安备 33010602011771号