3.2 -3.4 数据特征分析
来源:互联网 发布:windows安装ant 编辑:程序博客网 时间:2024/06/15 18:19
demo/data/catering_fish_congee
这个文件是“捞起生鱼片”的销售数据,书上的文件名写错了,注意改一下。
内容主要是这个菜从 2014/4/1 到 2014/6/30 的销售额。
其实这里没给代码,给的结果,看起来这里用 Excel 也能很好完成的。
同时给了很多分析方法。不过本文主要是代码实践,就不写了。
针对餐饮销量数据有一个统计分析代码:
#-*- coding: utf-8 -*-#餐饮销量数据统计量分析from __future__ import print_functionimport pandas as pdcatering_sale = 'data/catering_sale.xls' #餐饮数据data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列data = data[(data[u'销量'] > 400)&(data[u'销量'] < 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)
这段代码里面需要说一下的就是 Pandas 中的 .loc 方法。
statistics.loc['dis']这个代码的意思就是选择一列进行操作,这里就是 dis 列。
整个代码运行结果:
==========================================================================================
接下来对菜品贡献度进行分析。
比如餐馆有很多菜品,如何确定重点改善盈利度最高的菜品,砍掉盈利度低的菜品?
代码:
#-*- coding: utf-8 -*-#菜品盈利数据 帕累托图from __future__ import print_functionimport pandas as pd#初始化参数dish_profit = 'data/catering_dish_profit.xls' #餐饮菜品盈利数据data = pd.read_excel(dish_profit, index_col = u'菜品名')data = data[u'盈利'].copy()data.sort(ascending = False) # sort_values(inplace = True)import matplotlib.pyplot as plt #导入图像库plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号plt.figure()data.plot(kind='bar') # 条状图plt.ylabel(u'盈利(元)') # Y轴p = 1.0*data.cumsum()/data.sum()p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2) # 那条曲线的样式plt.annotate(format(p[6], '.3%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) # 添加注释,即85%处的标记。这里包括了指定箭头样式。第一个点记为编号0,这里就是编号6的点。# plt.annotate() 是一个文本注释方法,xy 是被注释的地方,xytext 是插入文本的地方。# format(p[6], '.4%') 中,p[6]应该是计算的编号6的点,'.4%'是百分比化,.4 是小数点后4位的意思plt.ylabel(u'盈利(比例)')plt.show()
注意我自己添加的关于画图的注释,都是自己试出来的。
data.sort(ascending = False)
懒得管了。
结果如下:
==========================================================================================
相关性分析
SPSS里面其实也能做,但是要试试Python
理论的Pearson和Spearman就不介绍了,以前数学建模接触过。
主要是给代码:
#-*- coding: utf-8 -*-#餐饮销量数据相关性分析from __future__ import print_functionimport pandas as pdcatering_sale = 'data/catering_sale_all.xls' #餐饮数据,含有其他属性data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列data.corr() #相关系数矩阵,即给出了任意两款菜式之间的相关系数data.corr()[u'百合酱蒸凤爪'] #只显示“百合酱蒸凤爪”与其他菜式的相关系数data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺']) #计算“百合酱蒸凤爪”与“翡翠蒸香茜饺”的相关系数print(data.corr()[u'百合酱蒸凤爪'])
注意书上没有那一行 print,而且我试了试 print 只能用 Python 3 的格式,也就是带括号。
运行结果如下:
多试试,把最后的代码改一改:
print(data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺']))
print(data.corr())
结果也不错。
======================================================================
3.4
讲了很多函数,见书,就不赘述了。
给个小例子
#-*- coding:utf-8 -*-import pandas as pdD = pd.DataFrame([range(1,8), range(2,9)]) # 生成样本D.corr(method = 'pearson') # 计算相关矩阵S1 = D.loc[0] # 提取第一行S2 = D.loc[1] # 提取第二行S1.corr(S2, method = 'pearson') # 计算相关系数print(S1.corr(S2, method = 'pearson'))
实际输出是 1.0 不知道有什么问题。
====================================================================================
另外讲了 画图方法 和 统计特征函数 的方法。
主要有二维线图plot,饼图pie,条形直方图hist,箱图boxplot,对数图plot(logx = True)
之类的很多...
- 3.2 -3.4 数据特征分析
- 数据特征分析
- Pandas数据特征分析
- 机器学习 数据特征分析 特征工程
- 数据特征提取,特征量相关性分析
- 机器学习 数据特征分析 特征工程
- 机器学习 数据特征分析 特征工程
- 数据探索-特征性分析
- MATLAB数据分析与挖掘实战-数据探索-3.2 数据特征分析
- 数据质量与特征分析笔记
- 数据特征分析---Python数据挖掘与分析
- matlab数据挖掘学习篇----数据特征分析
- 数据分析脚本&分析特征跟label的关系&缺失特征&缺失交叉特征&相关性热图
- 数据分析脚本&分析特征跟label的关系&缺失特征&缺失交叉特征&相关性热图
- 数据&特征
- 微博特征与行为的大数据挖掘分析
- 大数据分析建模思路技巧和算法的特征
- 下一代数据可视化分析系统的七个特征(一)
- 389.[LeetCode]Find the Difference
- Sciter:窗口扩展属性
- 字符设备驱动第三课---私有数据
- Jenkins学习(四)_创建项目
- 时序逻辑和组合逻辑的RTL的对照表
- 3.2 -3.4 数据特征分析
- 思想和俗语
- GH Bladed 软件使用学习笔记(1)
- 编程中你注意过这些细节吗
- 编译器的工作过程和原理
- java设计模式之简单工厂模式
- 1039. 到底买不买(20)
- MySQL和Oracle分页的区别
- requirejs初步了解