zoukankan      html  css  js  c++  java
  • 基于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.head(2)
    
    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
  • 相关阅读:
    IOS-JSON数据解析
    IOS-APP发布资料收集
    IOS-webService
    ASP.NET MVC学习之路:模板页
    io流
    线程
    事件监听
    java基础面试题
    递归调用
    三目运算: x?y:z
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/9446477.html
Copyright © 2011-2022 走看看