Python数据分析:大众点评数据进行选址
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:砂糖侠
如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!
一、项目背景
案例类型:练习
案例工具:Python、Qgis
案例目的:通过实战进行学习,让大家综合运用基础知识,加深印象巩固记忆。
二 、提出问题
①通过餐饮数据分析选出最具有竞争力的品类;
②通过建立综合分数指标的计算公式来挑选出最适合地址。
三、理解数据
读取数据集后,通过info()和describe()方法来查看一下数据的基本情况。
data.info()
——————————————————————————
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 96398 entries, 0 to 96397
Data columns (total 10 columns):
类别 96258 non-null object
行政区 96255 non-null object
点评数 96398 non-null int64
口味 96398 non-null float64
环境 96398 non-null float64
服务 96398 non-null float64
人均消费 96398 non-null int64
城市 96398 non-null object
Lng 96398 non-null float64
Lat 96398 non-null float64
dtypes: float64(5), int64(2), object(3)
memory usage: 7.4+ MB
数据共计96398个,10个变量/特征,数据类型数量为 float64(5), int64(2), object(3),粗略观察,数据明显有缺失值的情况,需要进行数据的清洗。
四、数据处理
使用data.isnull().values.sum()检查空值数量,检查出283个空值。
由于空值占数据总量比例为283/96398 = 0.0029,删除空值并不影响整体的数据情况,所以这里采用删除的办法来处理空值。
使用data.dropna()对空值进行删除,再使用data.isnull().values.sum()进行检查,结果为0。
数据清洗后的数据共计96255个。根据①通过餐饮数据分析选出最具有竞争力的品类的要求,选择相关的变量,选择['类别', '口味', '环境', '服务', '人均消费’]5个变量。
建立['类别', '口味', '环境', '服务', '人均消费’]的DataFrame,并且筛选出所有评分和消费大于0的情况。因为根据实际情况,评分和消费为0的数据对此没有参考作用。
引入’性价比’这一列,性价比的计算方式将所有的评分相加再除以人均消费金额,计算出 分/元 为单位的数值,表示单位价格获得的分数 来表示其性价比。
这样获得了df如下,筛选出了需要的数据54886个。
df.info()
——————————————————————————
<class 'pandas.core.frame.DataFrame'>
Int64Index: 54886 entries, 0 to 96395
Data columns (total 6 columns):
类别 54886 non-null object
口味 54886 non-null float64
环境 54886 non-null float64
服务 54886 non-null float64
人均消费 54886 non-null int64
性价比 54886 non-null float64
dtypes: float64(4), int64(1), object(1)
memory usage: 2.9+ MB
五、构建模型
得到数据集df,选择'类别'进行groupby分组再进行mean值等到每个类别的值。
使用箱型图进行异常值的排查。
箱型图使用异常值删除的函数,对异常值进行删除。
构建一个选择具有竞争力的品类的公式的因素,例如’口味','人均消费’,'性价比’,然后通过异常值删除的函数得出数据集。
将三组数据集放在同一张图上面。
很明显是由于没有做 数据标准化处理。
数据标准化处理之后
设计了一个计算公式,权重自己设计 分数的计算式 比如按照 口味:人均消费:性价比 = 2:5:3 的比例去计算。
先合并df_kw_max_min、df_rj_max_min、df_xjb_max_min,通过pd.merge合并。
计算最后的得分
得出【甜品】是最佳的品类。
使用Qgis制作出关于'人口密度'、'道路密度'、'餐饮密度'、'竞品密度’、'经度’、’维度'相关的数据集。
数据集有空值,使用dealdata.fillna(0,inplace=True)进行0的填充。
观察数据得知,'人口密度'、'道路密度'、'餐饮密度'、'竞品密度’不在同一纬度上,所以进行数据标准化处理。再计算['综合指标’]这一新列的数值。按照’人口密度’:'道路密度’:'餐饮密度’:'竞品密度’=4:3:2:1的比例。
六、数据可视化
利用matplotlib进行制图,使用散点图。
补充:使用bokeh绘制空间互动图形。
得出结论:
甜品店选址在(121°472′E,31°301′N)、(121°473′E,31°274′N)、(121°493′E,31°244′N)等地方开设最优
Python数据分析:大众点评数据进行选址的更多相关文章
- Python爬虫丨大众点评数据爬虫教程(2)
大众点评数据爬虫获取教程 --- [SVG映射版本] 前言: 大众点评是一款非常受大众喜爱的一个第三方的美食相关的点评网站.从网站内可以推荐吃喝玩乐优惠信息,提供美食餐厅.酒店旅游.电影票.家居装修. ...
- Python爬虫丨大众点评数据爬虫教程(1)
大众点评数据获取 --- 基础版本 大众点评是一款非常受普罗大众喜爱的一个第三方的美食相关的点评网站. 因此,该网站的数据也就非常有价值.优惠,评价数量,好评度等数据也就非常受数据公司的欢迎. 今天就 ...
- 使用 Python破解大众点评字体加密(SVG反扒)
前言 大众点评拥有大量高质量评论信息.种草信息,同时也有非常严格的反扒机制. 今天我们一起使用 Python破解大众点评字体加密,获取极具商业价值的信息. 本文知识点: requests 的使用 xp ...
- 用Python爬取大众点评数据,推荐火锅店里最受欢迎的食品
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:有趣的Python PS:如有需要Python学习资料的小伙伴可以加点 ...
- python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Se ...
- Python 数据分析中金融数据的来源库和简单操作
目录 金融数据 pandas-datareader TuShare 金融学图表 案例 金融数据 数据分析离不开数据的获取,这里介绍几种常用的获取金融方面数据的方法. pandas-datareader ...
- Python 数据分析实战 | 用数据带你回顾乔丹的职业生涯
乔丹是联盟上下公认的历史第一人,芝加哥公牛在他带领下几乎统治了上世纪 90 年代 NBA 整整 10 年,包括分别在 91-93 赛季和 96-98 赛季拿下的两次三连冠,要知道,NBA72 年历史上 ...
- 《Python 数据分析》笔记——数据的检索、加工与存储
数据的检索.加工与存储 1.利用Numpy和pandas对CSV文件进行写操作 对CSV文件进行写操作,numpy的savetxt()函数是与loadtxt()相对应的一个函数,他能以诸如CSV之类的 ...
- python数据分析之:数据加载,存储与文件格式
前面介绍了numpy和pandas的数据计算功能.但是这些数据都是我们自己手动输入构造的.如果不能将数据自动导入到python中,那么这些计算也没有什么意义.这一章将介绍数据如何加载以及存储. 首先来 ...
随机推荐
- Java工程师技能点梳理
从个人技术积累的角度,来看看一名合格的Java工程师在面试时所需要的知识技能. 1.基本语法 这包括static.final.transient等关键字的作用,foreach循环的原理等等.今天面试我 ...
- SQL 实习
一. tem表 group by 分组后,有三个编号,找出最下的订单时间,比较选出时间段内的数据.注意group by 和 having的用法. group by 的用法 不用聚合函数的时候,每类出现 ...
- Johnson-Trotter(JT)算法求全排列
Johnson-Trotter算法描述 算法 JohnsonTrotter(n) //实现用来生成排序的 Johnson-Trotter 算法 //输入:正整数n(代表序列1,2,···,n) //输 ...
- Window.requestAnimationFrame()动画更新
概述 Window.requestAnimationFrame()方法告诉浏览器你希望执行动画,并且再下一次重绘之前要求浏览器调用一个特定的函数去更新动画.该方法把一个回调函数作为参数,该回调函数会在 ...
- springboot项目下的Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
今天遇到mybatis-puls的报错Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (n ...
- reuire代码优化之:r.js
r.js是requireJS的优化(Optimizer)工具,可以实现前端文件的压缩与合并,在requireJS异步按需加载的基础上进一步提供前端优化,减小前端文件大小.减少对服务器的文件请求.要使用 ...
- 分治算法(C++版)
#include<iostream>using namespace std; void printArray(int array[],int length) { for (i ...
- javascript 入门 select2
要说这select2,还真是我......,也不是难,反正就对不了!!! 我博客看了一下牛,愣是对不了,后来硬着头看着官方文档,终于出来了. 注意: 1.调用的jquery库一定要能用,网上很多不能用 ...
- Javascript 入门 必备知识点
1.如何得到html的input标签的值: (1). $('#id').val(); (2). $("#id").attr("value"); 2.javasc ...
- SQL表的简单操作
创建数据库表,进行增删改查是我们操作数据库的最基础的操作,很简单,熟悉的请关闭,免得让费时间. 1.创建表: sql中创建数值类型字段要根据该字段值的增长情况选择类型: tinyint 占1个字节,长 ...