美团某商家的评论销售数据分析

数据初步的分析

  • 数据清洗
  • 数据初步的统计
  • 数据中的评论数据用于自然语言处理(待续)
  • 可视化(待续)
from pyecharts import Bar,Pie
import pandas as pd
import numpy as np
import  matplotlib.pyplot as  plt
import time
df=pd.read_excel("all_data_meituan.xlsx")
df.head(2)

.dataframe tbody tr th:only-of-type { vertical-align: middle }
.dataframe tbody tr th { vertical-align: top }
.dataframe thead th { text-align: right }

anonymous avgPrice comment commentTime dealEndtime did menu picUrls quality readCnt replyCnt reviewId star userId userLevel userName userUrl zanCnt
0 False 73 还行吧,建议不要排队那个烤鸭和羊肉串,因为烤肉时间本来就不够,排那个要半小时,然后再回来吃烤... 1525875708515 1.530338e+09 44328533 单人午晚餐 [{‘id‘: -1445845615, ‘url‘: ‘http://p0.meituan... True 25434 0 1674208634 40 291754497 1 q哈哈哈qq https://img.meituan.net/avatar/92de6ba9a330efe... 2
1 False 73 去过好几次了 东西还是老样子 没增添什么新花样 环境倒是挺不错 离我们这也挺近 味道还可以 ... 1527853291658 1.530338e+09 44328241 2人午晚餐 [{‘id‘: -1429563625, ‘url‘: ‘http://p0.meituan... False 7293 0 1693519286 40 829297130 2 love勇往直前 https://img.meituan.net/avatar/095e2339acd2e50... 0
df[‘avgPrice‘].value_counts()
# 同一家店的均价应该为同一个数值,所以这列数据没多大的意义
73    17400
Name: avgPrice, dtype: int64
df[‘anonymous‘].value_counts()
# 匿名评价与实名评价的比例大致在5:1左右
False    14402
True      2998
Name: anonymous, dtype: int64
def convertTime(x):
    y=time.localtime(x/1000)
    z=time.strftime("%Y-%m-%d %H:%M:%S",y)
    return z
df["commentTime"]=df["commentTime"].apply(convertTime)
df["commentTime"].head()
0    2018-05-09 22:21:48
1    2018-06-01 19:41:31
2    2018-04-04 11:52:23
3    2018-05-01 17:12:22
4    2018-05-17 16:48:04
Name: commentTime, dtype: object
# 在excel可以用筛选器直接看到这列中的数据含有缺失值,或者在拿到数据的时候,使用df.info() 查看每列的数据信息情况
df[‘dealEndtime‘].isna().value_counts()
# 这列数据中含有177个缺失值,其余完整
False    17223
True       177
Name: dealEndtime, dtype: int64
df[‘commentTime‘]=pd.to_datetime(df[‘commentTime‘])
df1 = df.set_index(‘commentTime‘)
df1.resample(‘D‘).size().sort_values(ascending=False).head(100)
df1.resample(‘M‘).size().head(1000)
commentTime
2017-08-31       7
2017-09-30       4
2017-10-31      53
2017-11-30     359
2017-12-31    2466
2018-01-31    4169
2018-02-28    2759
2018-03-31    2490
2018-04-30    2754
2018-05-31    2199
2018-06-30     140
Freq: M, dtype: int64
# 处理数据前需要先处理缺失值
# 订单结束时间清洗
df[‘dealEndtime‘].fillna(method=‘ffill‘).apply(lambda x:time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(x))).head()
0    2018-06-30 14:00:00
1    2018-06-30 14:00:00
2    2018-06-30 14:00:00
3    2018-06-30 14:00:00
4    2018-06-30 14:00:00
Name: dealEndtime, dtype: object
df[‘menu‘].dropna().astype(‘category‘).value_counts()
2人午晚餐                       7640
单人午晚餐                       3920
学生专享午晚自助                    2638
4人午/晚自助                     1581
单人下午自助烤肉                     639
6人午/晚自助                      507
周一至周五自助烤肉/周六日及节假日自助烤肉2选1     209
单人午/晚自助                       67
周一至周五自助烤肉,免费WiFi              22
Name: menu, dtype: int64
df[‘readCnt‘].corr(df[‘star‘])
# 评论阅读书与客户评价分数高低的相关性
0.05909293203205019
df[(df["menu"]=="2人午晚餐")][‘star‘].value_counts()
40    2704
50    2072
30    2002
20     533
10     329
Name: star, dtype: int64
df[(df["menu"]=="单人午晚餐")][‘star‘].value_counts()
30    1215
40    1208
50    1093
20     298
10     106
Name: star, dtype: int64
# 学生专享午晚自助
df[(df["menu"]=="学生专享午晚自助")][‘star‘].value_counts()
40    954
50    863
30    529
20    191
10    101
Name: star, dtype: int64
df[(df["menu"]=="4人午/晚自助")][‘star‘].value_counts()
50    536
30    432
40    414
10    131
20     68
Name: star, dtype: int64
df[(df["menu"]=="单人下午自助烤肉")][‘star‘].value_counts()
30    208
50    169
40    144
10     98
20     20
Name: star, dtype: int64
df[(df["menu"]=="6人午/晚自助")][‘star‘].value_counts()
50    245
40    142
30    112
10      8
Name: star, dtype: int64
#周一至周五自助烤肉/周六日及节假日自助烤肉2选1
df[(df["menu"]=="周一至周五自助烤肉/周六日及节假日自助烤肉2选1")][‘star‘].value_counts()
50    87
40    66
30    46
20    10
Name: star, dtype: int64
df[(df["menu"]=="单人午/晚自助")][‘star‘].value_counts()
50    30
40    27
30    10
Name: star, dtype: int64
df[(df["menu"]=="周一至周五自助烤肉,免费WiFi")][‘star‘].value_counts().reindex(range(10,51,10)).fillna(0)
10     0.0
20     0.0
30     0.0
40     0.0
50    22.0
Name: star, dtype: float64
# df.groupby([‘menu‘,‘star‘]).size().to_excel("all_menu_star.xls")
df.groupby([‘menu‘,‘star‘]).size()
menu                      star
2人午晚餐                     10       329
                          20       533
                          30      2002
                          40      2704
                          50      2072
4人午/晚自助                   10       131
                          20        68
                          30       432
                          40       414
                          50       536
6人午/晚自助                   10         8
                          30       112
                          40       142
                          50       245
单人下午自助烤肉                  10        98
                          20        20
                          30       208
                          40       144
                          50       169
单人午/晚自助                   30        10
                          40        27
                          50        30
单人午晚餐                     10       106
                          20       298
                          30      1215
                          40      1208
                          50      1093
周一至周五自助烤肉/周六日及节假日自助烤肉2选1  20        10
                          30        46
                          40        66
                          50        87
周一至周五自助烤肉,免费WiFi          50        22
学生专享午晚自助                  10       101
                          20       191
                          30       529
                          40       954
                          50       863
dtype: int64
df.groupby([‘star‘,‘menu‘,]).size()
star  menu
10    2人午晚餐                        329
      4人午/晚自助                      131
      6人午/晚自助                        8
      单人下午自助烤肉                      98
      单人午晚餐                        106
      学生专享午晚自助                     101
20    2人午晚餐                        533
      4人午/晚自助                       68
      单人下午自助烤肉                      20
      单人午晚餐                        298
      周一至周五自助烤肉/周六日及节假日自助烤肉2选1      10
      学生专享午晚自助                     191
30    2人午晚餐                       2002
      4人午/晚自助                      432
      6人午/晚自助                      112
      单人下午自助烤肉                     208
      单人午/晚自助                       10
      单人午晚餐                       1215
      周一至周五自助烤肉/周六日及节假日自助烤肉2选1      46
      学生专享午晚自助                     529
40    2人午晚餐                       2704
      4人午/晚自助                      414
      6人午/晚自助                      142
      单人下午自助烤肉                     144
      单人午/晚自助                       27
      单人午晚餐                       1208
      周一至周五自助烤肉/周六日及节假日自助烤肉2选1      66
      学生专享午晚自助                     954
50    2人午晚餐                       2072
      4人午/晚自助                      536
      6人午/晚自助                      245
      单人下午自助烤肉                     169
      单人午/晚自助                       30
      单人午晚餐                       1093
      周一至周五自助烤肉/周六日及节假日自助烤肉2选1      87
      周一至周五自助烤肉,免费WiFi              22
      学生专享午晚自助                     863
dtype: int64
df.groupby([‘star‘,‘menu‘,]).size()[50]
menu
2人午晚餐                       2072
4人午/晚自助                      536
6人午/晚自助                      245
单人下午自助烤肉                     169
单人午/晚自助                       30
单人午晚餐                       1093
周一至周五自助烤肉/周六日及节假日自助烤肉2选1      87
周一至周五自助烤肉,免费WiFi              22
学生专享午晚自助                     863
dtype: int64
# userId
# 这家店铺有好多回头客,万万没想到
df[df[‘userId‘]!=0][‘userId‘].value_counts().head(40)
266045270     64
152775497     60
80372612      60
129840082     60
336387962     60
34216474      60
617772217     60
82682689      54
287219504     49
884729389     45
868838851     40
409054441     40
86939815      40
776086712     40
48597225      40
111808598     40
240199490     40
83068123      40
298504911     40
1042639014    40
912472277     40
98198819      40
1494880345    40
152930400     40
139581136     40
404183587     40
714781743     40
292809386     40
18111538      40
1097689674    40
300905323     40
232697160     40
141718492     40
879430090     40
696143486     40
13257519      40
983797146     40
911947863     40
993057629     40
494215297     40
Name: userId, dtype: int64
df[df[‘userName‘]!="匿名用户"][‘userName‘].value_counts().head(40)
xuruiss1026     64
vTF610712604    60
siisgood        60
么么哒我是你聪叔        60
黑发飘呀飘           60
始于初见的你          60
jIx325233926    60
yumengkou       54
Daaaav          49
梁子7543          45
SzX539077433    40
小虎儿2001         40
清晨cxh98         40
安然~轩            40
hiP499857883    40
滨海之恋33          40
小匴盤             40
oev575457132    40
Mqg827794346    40
onr243685128    40
TBKLZJ          40
nXu534267448    40
aYH197128794    40
天蛟Wing          40
热带鱼7697         40
18669978087     40
ree177064067    40
Bbl141819414    40
西山仙踪            40
张齐齐123          40
yue国光123        40
joF498901567    40
qDK538313823    40
Nqr695642404    40
pHO437742850    40
FQe845913598    40
leeman666888    40
kingd123        40
榴莲馅月饼           40
Mvo148723747    40
Name: userName, dtype: int64
df.groupby([‘star‘,‘userLevel‘,]).size()
star  userLevel
10    0             187
      1             139
      2             164
      3             193
      4              80
      5              10
20    0             223
      1              88
      2             304
      3             294
      4             207
      5              21
30    0            1147
      1             405
      2            1057
      3            1230
      4             570
      5             165
      6              20
40    0             870
      1             432
      2            1360
      3            1751
      4            1026
      5             261
      6              25
50    0             698
      1             386
      2            1167
      3            1670
      4             802
      5             318
      6             130
dtype: int64
df.groupby([‘userLevel‘,‘star‘]).size()
userLevel  star
0          10       187
           20       223
           30      1147
           40       870
           50       698
1          10       139
           20        88
           30       405
           40       432
           50       386
2          10       164
           20       304
           30      1057
           40      1360
           50      1167
3          10       193
           20       294
           30      1230
           40      1751
           50      1670
4          10        80
           20       207
           30       570
           40      1026
           50       802
5          10        10
           20        21
           30       165
           40       261
           50       318
6          30        20
           40        25
           50       130
dtype: int64
df[‘zanCnt‘].value_counts()
0    16422
1      652
2      143
3      119
8       20
6       20
4       20
5        4
Name: zanCnt, dtype: int64

原文地址:https://www.cnblogs.com/onemorepoint/p/9446477.html

时间: 2024-08-01 23:02:35

美团某商家的评论销售数据分析的相关文章

基于pandas python的美团某商家的评论销售数据分析(可视化续)

from pyecharts import Bar,Pie import pandas as pd import numpy as np import matplotlib.pyplot as plt import time df=pd.read_excel("all_data_meituan.xlsx") df.drop('comment',axis=1).head(2) df['avgPrice'].value_counts() # 同一家店的均价应该为同一个数值,所以这列数据没多

Python网络爬虫实战:天猫胸罩销售数据分析

本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过SQL语句.Pandas和Matplotlib对数据进行数据可视化分析.我们从分析结果中可以得出很多有的结果,例如,中国女性胸部标准尺寸是多少:胸罩上胸围的销售比例:哪个颜色的胸罩最受女性欢迎. 1. 项目效果展示 本项目涉及到网络技术.网络爬虫技术.数据库技术.数据分析技术.数据可视化技术.首先应该

就在支付宝、美团把商家搞疯的时候 百度钱包干了件对的事!

支付宝与美团最近撕得热闹,由亲密盟友转脸变成敌人.有消息称,美团近日要求商户全面停用支付宝,否则提高商户的提成比例:而阿里巴巴则退出对"新美大"的投资,全力扶持"口碑". 支付宝与"美大"斗法,却都要挟商家做一道"二选一"的选择题,但选哪一方对商户都是伤.选择美团,就等于少了一个强大的支付入口,用户流量损失不少:选择支付宝,阿里"口碑"暂时没口碑,前期孵化用户市场免不了成本剧增.就在美团.支付宝互撕,把商家

基于nightmare的美团美食商家爬虫实践

前言美团商家页分析需要爬取的数据有(这里没有按人数爬)爬虫工具选取pysipderscrapynightmare同步任务js动态加载中断继续爬坑总结示例代码 前言 上学的时候自己写过一些爬虫代码,比较简陋,基于HttpRequest请求获取地址返回的信息,再根据正则表达式抓取想要的内容.那时候爬的网站大多都是静态的,直接获取直接爬即可,而且也没有什么限制.但是现在网站的安全越来越完善,各种机器识别,打码,爬虫也要越来越只能才行了. 前段时间有需求要简单爬取美团商家的数据,做了一些分析,实践,在这

乘用车辆和商用车辆销售数据分析

  1 数据概况 本数据为上牌汽车的销售数据,分为乘用车辆和商用车辆.数据包含销售相关数据与汽车具体参数.数据项包括:时间.销售地点.邮政编码.车辆类型.车辆型号.制造厂商名称.排量.油耗.功率.发动机型号.燃料种类.车外廓长宽高.轴距.前后车轮.轮胎规格.轮胎数.载客数.所有权.购买人相关信息等.   2 数据背景介绍 汽车销售(Atuo Sales)是消费者支出的重要组成成分,同时能很好的反映出消费者对经济前景的信心.通常,汽车销售情况我们了解一个国家经济循环强弱情况的第一手资料,早于其他个

美团外卖商家获取订单-signToken取值

所需工具: findller chrome 获取外卖历史订单地址为: http://e.waimai.meituan.com/v2/order/history/r/query?getNewVo=1&wmOrderPayType=2&wmOrderStatus=-2&sortField=1&startDate=2017-05-30&endDate=2017-05-30&lastLabel=&nextLabel=&signToken=05StD%

美团_cc商家页面实现

public class ShopFragment extends Fragment implements OnClickListener { private List<Goodlist> mGoodList = new ArrayList<Goodlist>(); private View mLayout; private TextView mTvTab1; private TextView mTvTab2; private TextView mTvTab3; private T

数据分析最具价值的49个案例(建议收藏)

导读:本文是近年来不同行业.不同领域的大数据公司的一些经典案例总结.尽管有些已经是几年前的案例,但其中的深层逻辑对于未来仍有启发. 本文力图从企业运营和管理的角度,梳理出发掘大数据价值的一般规律:一是以数据驱动的决策,主要通过提高预测概率,来提高决策成功率:二是以数据驱动的流程,主要是形成营销闭环战略,提高销售漏斗的转化率:三是以数据驱动的产品,在产品设计阶段,强调个性化:在产品运营阶段,则强调迭代式创新. 学习Python中有不明白推荐加入交流裙                     号:6

四面楚歌,击碎美团的美梦

上半年400亿交易额的豪言壮语犹在耳边,时间线已经拉到2014年的尾声.还有十几天,2014年就结束了.美团的目标能完成吗? 团购的权威数据服务机构,团800的统计得出过"下半年定律",即团购网站在每年7.8月的高峰交易额之后,会显著下滑.美团的月交易额峰值在8月出现43.61,前10个月的交易总额为307.1亿元,月均交易额30亿.距离400亿的目标还剩93亿,每月平均需要47亿,比峰值还要高了一点点,看起来大概没戏了吧. 完的成完不成暂且不论吧,反正数据最终还是掌握在美团手里,谁也