首页 > 编程语言 >Python数据分析

Python数据分析

时间:2023-02-24 14:22:43浏览次数:44  
标签:数据分析 plt Python sale catering pd import data

数据分析

  1. 01_abnormal_check

  • Code

 1 # -*- coding: utf-8 -*-
 2 
 3 # 代码3-1 使用describe()方法即可查看数据的基本情况
 4 import pandas as pd
 5 catering_sale = '../data/catering_sale.xls'  # 餐饮数据
 6 data = pd.read_excel(catering_sale, index_col = u'日期')  # 读取数据,指定“日期”列为索引列
 7 print(data.describe())
 8 
 9 
10 
11 # 代码3-2 餐饮销额数据异常值检测
12 
13 import matplotlib.pyplot as plt  # 导入图像库
14 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
15 plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
16 
17 plt.figure()  # 建立图像
18 p = data.boxplot(return_type='dict')  # 画箱线图,直接使用DataFrame的方法
19 x = p['fliers'][0].get_xdata()  #  'flies'即为异常值的标签
20 y = p['fliers'][0].get_ydata()
21 y.sort()  # 从小到大排序,该方法直接改变原对象
22 '''
23 用annotate添加注释
24 其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制
25 以下参数都是经过调试的,需要具体问题具体调试。
26 '''
27 for i in range(len(x)):
28     if i>0:
29         plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
30     else:
31         plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))
32 
33 plt.show()  # 展示箱线图

 

 

 

  •  Result

 

 

  1. 02_feature_check

  • Code

  1 # -*- coding: utf-8 -*-
  2 
  3 # 代码3-3 捞起生鱼片的季度销售情况
  4 import pandas as pd
  5 import numpy as np
  6 catering_sale = '../data/catering_fish_congee.xls'  # 餐饮数据
  7 data = pd.read_excel(catering_sale,names=['date','sale'])  # 读取数据,指定“日期”列为索引
  8 
  9 import matplotlib.pyplot as plt
 10 d = 500  # 设置组距
 11 num_bins = round((max(data['sale']) - min(data['sale'])) / d)  # 计算组数
 12 plt.figure(figsize=(10,6))  # 设置图框大小尺寸
 13 plt.hist(data['sale'], num_bins)
 14 plt.xticks(range(0, 4000, d))
 15 plt.xlabel('sale分层')
 16 plt.grid()
 17 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
 18 plt.title('季度销售额频率分布直方图',fontsize=20)
 19 plt.show()
 20 
 21 
 22 
 23 # 代码3-4 不同菜品在某段时间的销售量的分布情况
 24 import pandas as pd
 25 import matplotlib.pyplot as plt
 26 catering_dish_profit = '../data/catering_dish_profit.xls'  # 餐饮数据
 27 data = pd.read_excel(catering_dish_profit)  # 读取数据,指定“日期”列为索引
 28 
 29 # 绘制饼图
 30 x = data['盈利']
 31 labels = data['菜品名']
 32 plt.figure(figsize = (8, 6))  # 设置画布大小
 33 plt.pie(x,labels=labels)  # 绘制饼图
 34 plt.rcParams['font.sans-serif'] = 'SimHei'
 35 plt.title('菜品销售量分布(饼图)')  # 设置标题
 36 plt.axis('equal')
 37 plt.show()
 38 
 39 # 绘制条形图
 40 x = data['菜品名']
 41 y = data['盈利']
 42 plt.figure(figsize = (8, 4))  # 设置画布大小
 43 plt.bar(x,y)
 44 plt.rcParams['font.sans-serif'] = 'SimHei'
 45 plt.xlabel('菜品')  # 设置x轴标题
 46 plt.ylabel('销量')  # 设置y轴标题
 47 plt.title('菜品销售量分布(条形图)')  # 设置标题
 48 plt.show()  # 展示图片
 49 
 50 
 51 
 52 # 代码3-5 不同部门在各月份的销售对比情况
 53 # 部门之间销售金额比较
 54 import pandas as pd
 55 import matplotlib.pyplot as plt
 56 data=pd.read_excel("../data/dish_sale.xls")
 57 plt.figure(figsize=(8, 4))
 58 plt.plot(data['月份'], data['A部门'], color='green', label='A部门',marker='o')
 59 plt.plot(data['月份'], data['B部门'], color='red', label='B部门',marker='s')
 60 plt.plot(data['月份'], data['C部门'],  color='skyblue', label='C部门',marker='x')
 61 plt.legend() # 显示图例
 62 plt.ylabel('销售额(万元)')
 63 plt.show()
 64 
 65 
 66 #  B部门各年份之间销售金额的比较
 67 data=pd.read_excel("../data/dish_sale_b.xls")
 68 plt.figure(figsize=(8, 4))
 69 plt.plot(data['月份'], data['2012年'], color='green', label='2012年',marker='o')
 70 plt.plot(data['月份'], data['2013年'], color='red', label='2013年',marker='s')
 71 plt.plot(data['月份'], data['2014年'],  color='skyblue', label='2014年',marker='x')
 72 plt.legend() # 显示图例
 73 plt.ylabel('销售额(万元)')
 74 plt.show()
 75 
 76 
 77 # 代码3-6 餐饮销量数据统计量分析
 78 
 79 # 餐饮销量数据统计量分析
 80 import pandas as pd
 81 
 82 catering_sale = '../data/catering_sale.xls'  # 餐饮数据
 83 data = pd.read_excel(catering_sale, index_col = '日期')  # 读取数据,指定“日期”列为索引列
 84 data = data[(data['销量'] > 400)&(data['销量'] < 5000)]  # 过滤异常数据
 85 statistics = data.describe()  # 保存基本统计量
 86 
 87 statistics.loc['range'] = statistics.loc['max']-statistics.loc['min']  # 极差
 88 statistics.loc['var'] = statistics.loc['std']/statistics.loc['mean']  # 变异系数
 89 statistics.loc['dis'] = statistics.loc['75%']-statistics.loc['25%']  # 四分位数间距
 90 
 91 print(statistics)
 92 
 93 
 94 # 代码3-7 某单位日用电量预测分析
 95 
 96 import pandas as pd
 97 import matplotlib.pyplot as plt
 98 
 99 df_normal = pd.read_csv("../data/user.csv")
100 plt.figure(figsize=(8,4))
101 plt.plot(df_normal["Date"],df_normal["Eletricity"])
102 plt.xlabel("日期")
103 plt.ylabel("每日电量")
104 # 设置x轴刻度间隔
105 x_major_locator = plt.MultipleLocator(7)
106 ax = plt.gca()
107 ax.xaxis.set_major_locator(x_major_locator)
108 plt.title("正常用户电量趋势")
109 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
110 plt.show()  # 展示图片
111 
112 # 窃电用户用电趋势分析
113 df_steal = pd.read_csv("../data/Steal user.csv")
114 plt.figure(figsize=(10, 9))
115 plt.plot(df_steal["Date"],df_steal["Eletricity"])
116 plt.xlabel("日期")
117 plt.ylabel("日期")
118 # 设置x轴刻度间隔
119 x_major_locator = plt.MultipleLocator(7)
120 ax = plt.gca()
121 ax.xaxis.set_major_locator(x_major_locator)
122 plt.title("窃电用户电量趋势")
123 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
124 plt.show()  # 展示图片
125 
126 
127 # 代码3-8 菜品盈利帕累托图
128 
129 # 菜品盈利数据 帕累托图
130 import pandas as pd
131 
132 # 初始化参数
133 dish_profit = '../data/catering_dish_profit.xls'  # 餐饮菜品盈利数据
134 data = pd.read_excel(dish_profit, index_col = '菜品名')
135 data = data['盈利'].copy()
136 data.sort_values(ascending = False)
137 
138 import matplotlib.pyplot as plt  # 导入图像库
139 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
140 plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
141 
142 plt.figure()
143 data.plot(kind='bar')
144 plt.ylabel('盈利(元)')
145 p = 1.0*data.cumsum()/data.sum()
146 p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)
147 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"))  # 添加注释,即85%处的标记。这里包括了指定箭头样式。
148 plt.ylabel('盈利(比例)')
149 plt.show()
150 
151 
152 # 代码3-9 餐饮销量数据相关性分析
153 
154 # 餐饮销量数据相关性分析
155 from __future__ import print_function
156 import pandas as pd
157 
158 catering_sale = '../data/catering_sale_all.xls'  # 餐饮数据,含有其他属性
159 data = pd.read_excel(catering_sale, index_col = '日期')  # 读取数据,指定“日期”列为索引列
160 
161 print(data.corr())  # 相关系数矩阵,即给出了任意两款菜式之间的相关系数
162 print(data.corr()['百合酱蒸凤爪'])  # 只显示“百合酱蒸凤爪”与其他菜式的相关系数
163 # 计算“百合酱蒸凤爪”与“翡翠蒸香茜饺”的相关系数
164 print(data['百合酱蒸凤爪'].corr(data['翡翠蒸香茜饺']))
  • Result

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:数据分析,plt,Python,sale,catering,pd,import,data
From: https://www.cnblogs.com/zhangfurong/p/17151317.html

相关文章

  • Python 常用内置函数 二
    enumerateenumerate函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。enumerate(sequence,[start=0])sequence是一......
  • python print的多种使用
    print函数用于打印和输出代码内容,本篇我们将对输出的三种不同形式带来详细介绍。1、print()函数输出的内容:数字,字符串,含有运算符的表达式。#数字print(520)print(98.5)#字符......
  • python网页中下拉框的操作
    1、只要是第一次打开页面可以加载的元素,就可以通过元素定位来定位和操作。2、如果需要先点击下拉框对象再加载选项,必须先点击脚本,等待选项元素加载。实例1.实例化select对象......
  • 提高Python运行效率的5个技巧
    与其他编程语言相比,Python最大的特点就是能够让你在短时间内用极少的代码,实现大量的操作,比如:Java编写一个程序需要百行代码,而Python只需要十几行就能搞定。本篇文章为大家介......
  • python电脑桌面中整理exe程序
    1、引入库os,time,shutil。2、创建分类字典。3、传入桌面路径。将桌面路径以字符串形式赋值给path,并将桌面所有文件名存入dirs。4、在指定路径创建文件夹用以保存分类文件。5......
  • python如何转换为私有属性
    1、在属性或方法名称之前增加一个下划线,表示属性或方法只在类中使用。2、可手动调用_age,从而获得age属性,更严格的方法是在属性或方法之前增加两个下划线__,此时手动调用属性......
  • python定义类的初始化方法
    1、当类的初始化时,类中的方法__init__可以被直接定义,它在实例生成时执行,并且类中的方法与普通函数有很小的区别。2、一个类中的方法必须包含一个关键字self,也就是instance本......
  • 浅谈Python的\__sizeof__()和getsizeof()
    浅谈Python的_sizeof_()和getsizeof()_sizeof_()返回内存中的大小,单位字节|__sizeof__(self,/)|Returnssizeinmemory,inbytes.getsizeof()这是s......
  • 深入理解Python装饰器
    Bydefinition,adecoratorisafunctionthattakesanotherfunctionandextendsthebehaviorofthelatterfunctionwithoutexplicitlymodifyingit.装饰器可......
  • Python arcpy创建栅格、批量拼接栅格
      本文介绍基于Python语言arcpy模块,实现栅格影像图层建立与多幅遥感影像数据批量拼接(Mosaic)的操作。  首先,相关操作所需具体代码如下:importosimportarcpyfile_p......