利用商鋪數(shù)據(jù)作雷達(dá)圖

本文采用的是之前的一個上海商鋪數(shù)據(jù)饭望,里面主要包括了店名仗哨、類別、評論數(shù)铅辞、星級厌漂、價(jià)格、以及評分巷挥,評分主要包括環(huán)境桩卵、口味、服務(wù)倍宾,因此也是從這個三個維度作雷達(dá)圖。
在這里胜嗓,提出我們的問題:
1.各個類目的評分如何高职?
2.評分與評論數(shù)、星級的關(guān)聯(lián)度辞州?

import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt
import seaborn as sns 
from math import pi
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
#設(shè)置字體怔锌,作圖中才能顯示中文
f = open(r'E:\BaiduNetdiskDownload\商鋪數(shù)據(jù).csv',encoding='utf-8')
shops = pd.read_csv(f)
#導(dǎo)入數(shù)據(jù),由于數(shù)據(jù)名稱中帶有中文变过,因此要用這種形式
shops.head()

首先把數(shù)據(jù)導(dǎo)入進(jìn)來埃元,然后觀察數(shù)據(jù)


image.png

在這里要對comment,price進(jìn)行處理

shops['comment'] = shops['comment'].str.replace('我要點(diǎn)評','0')
shops['comment'] = shops['comment'].str.replace('條點(diǎn)評','')
shops['comment'] = shops['comment'].apply(lambda x : int(x))
#將comment中的中文全部去掉媚狰,沒有評論的用0代替
shops['price'] = shops['price'].str.replace('人均                                    -','NaN')
shops['price'] = shops['price'].str.replace('人均                                        ¥','')
#同樣將中文去掉
shops = shops[['classify','shop_name','comment','star','price','口味','環(huán)境','服務(wù)']]
#選取其中這些特征

首先岛杀,根據(jù)第一個問題:各個類目的評分如何。我們在這里選擇雷達(dá)圖崭孤,只要這種雷達(dá)圖做出來类嗤,其他情況下都沒什么問題,也許雷達(dá)圖在這里不是最好的表達(dá)方式辨宠,但是本文的目的在于學(xué)習(xí)雷達(dá)圖的制作遗锣。

classifys = list(shops['classify'].unique())
#將所有類目作個列表
rating_classify = shops.groupby('classify').mean()[['口味','環(huán)境','服務(wù)']]
#這三個指標(biāo)是我們做來作雷達(dá)圖的指標(biāo)
color = ['b','r','y']
plt.figure(figsize=(15,10))
idx = 1
for i in classifys: #遍歷所有類目
    features = dict(rating_classify.loc[i]) #選取每個類目中的值,作個字典
    classify_ = features.keys()  #字典的鍵為口味嗤形,環(huán)境精偿,服務(wù)
    value = list(features.values())  #字典的值則為評分
    value += value[:1] #value尾巴加上第一個值,用于連接首尾
    N = len(classify_)  #根據(jù)特征切分整圓
    angles = [n/float(N) * 2 * pi for n in range(N)]  #劃分弧度
    angles += angles[:1] #同樣用于連接首尾
    plt.subplot(1,3,idx,polar=True) #polar則代表用弧度來作圖,這是雷達(dá)圖的關(guān)鍵
    plt.xticks(angles[:-1],classify_,color='grey',size = 8) 
#雷達(dá)圖其實(shí)類似于折線圖首尾連接形成一個圓笔咽,它的基本要點(diǎn)同樣是找到x和y值墓阀,這里x值為特征,y則為評分拓轻,
#只不過x軸的刻度變成了弧度也就是angles斯撮,而弧度上的刻度則為特征
    plt.ylim(0,10)
#設(shè)置y的范圍,根據(jù)數(shù)值來確定
    plt.grid(True)
    plt.tick_params('y', labelleft=False)
    plt.plot(angles,value,linewidth=1,linestyle = 'solid')
#畫折現(xiàn)即可扶叉,區(qū)別就是x為angles
    plt.fill(angles,value,c = color[idx-1],alpha = 0.3)
    idx += 1
    plt.title(i)
image.png

由圖可知勿锅,三者不同特征評分相似。接下來我們只研究在美食中枣氧,細(xì)分不同條件觀察評分溢十。
首先根據(jù)評論數(shù),先對評論數(shù)分為三個等級(低評論达吞,中評論张弛,高評論)代表評論數(shù)的不同。然后根據(jù)每個等級作雷達(dá)圖酪劫,代碼如下:

shops['comment'] = pd.cut(shops['comment'],[-1,1000,10000,22000],labels = ['少評論','中評論','高評論'])
#首先根據(jù)評論數(shù)作分級處理吞鸭,這里用到cut函數(shù)
food = shops[shops['classify'] == '美食']
idx = 1
plt.figure(figsize = (30,6))
for comments_,features in food.groupby('comment').mean()[['口味','環(huán)境','服務(wù)']].iterrows():
    print(comments_)
    print(features)
    feature = dict(features)
    value = list(feature.values())
    value += value[:1]
    print(value)
    class_comment = feature.keys()
    N = len(class_comment)
    angle = [n/float(N) * 2 * pi for n in range(N)]
    angle += angle[:1]
    plt.subplot(polar = True)
    plt.xticks(angle,class_comment,size = 10,color='grey')
    plt.ylim(0,10)
    plt.grid(True)
    plt.tick_params('y',labelleft=False)
    plt.plot(angle,value,linewidth = 2,linestyle='solid',label = comments_)
    plt.legend(loc = 'best')
    #plt.fill(angle,value,c = color[idx-1],alpha = 0.3)
    #plt.title(comments_)
    idx += 1
image.png

可以看出,高評論數(shù)的商家往往比低評論數(shù)的商家具有更高的評分覆糟。由于這里的評論并沒有分的很細(xì)刻剥,在實(shí)際情況可以進(jìn)一步分得更細(xì)來進(jìn)行觀察。隨后是針對star繪制雷達(dá)圖滩字。

star = list(shops['star'].unique())
plt.figure(figsize = (8,6))
idx = 1
for star_,features in food.groupby('star').mean()[['口味','環(huán)境','服務(wù)']].iterrows():
    plt.figure(figsize = (8,6))
    plt.subplot(polar = True)
    feature = dict(features)
    value = list(feature.values())
    value += value[:1]
    star_comment = feature.keys()
    N = len(star_comment)
    angle = [n/float(N) * 2 * pi for n in range(N)]
    print(N)
    angle += angle[:1]
    #plt.subplot(7,1,idx,polar = True)
    plt.xticks(angle,class_comment,size = 10,color='grey')
    plt.ylim(0,9)
    plt.grid(True)
    plt.tick_params('y',labelleft=False)
    plt.plot(angle,value,linewidth = 1,linestyle='solid',label = star_)
    plt.legend(loc = 'best')
    #plt.fill(angle,value,c = color[idx-1],alpha = 0.3)
    #plt.title(comments_)
    idx += 1
image.png

image.png

這里選取部分圖造虏,可以看出星級越高評分也越高,各方面均衡上升才能保證更高的水準(zhǔn)麦箍,因此一個商鋪要想做好漓藕,必須在環(huán)境口味服務(wù)各方面都下功夫。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挟裂,一起剝皮案震驚了整個濱河市享钞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌话瞧,老刑警劉巖嫩与,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異交排,居然都是意外死亡划滋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門埃篓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來处坪,“玉大人,你說我怎么就攤上這事⊥剑” “怎么了玄帕?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長想邦。 經(jīng)常有香客問我裤纹,道長,這世上最難降的妖魔是什么丧没? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任鹰椒,我火速辦了婚禮,結(jié)果婚禮上呕童,老公的妹妹穿的比我還像新娘漆际。我一直安慰自己,他們只是感情好夺饲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布奸汇。 她就那樣靜靜地躺著,像睡著了一般往声。 火紅的嫁衣襯著肌膚如雪擂找。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天烁挟,我揣著相機(jī)與錄音婴洼,去河邊找鬼。 笑死撼嗓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的欢唾。 我是一名探鬼主播且警,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼礁遣!你這毒婦竟也來了斑芜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤祟霍,失蹤者是張志新(化名)和其女友劉穎杏头,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沸呐,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡醇王,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了崭添。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寓娩。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棘伴,到底是詐尸還是另有隱情寞埠,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布焊夸,位于F島的核電站仁连,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阱穗。R本人自食惡果不足惜饭冬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颇象。 院中可真熱鬧伍伤,春花似錦、人聲如沸遣钳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕴茴。三九已至劝评,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倦淀,已是汗流浹背蒋畜。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撞叽,地道東北人姻成。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像愿棋,于是被迫代替她去往敵國和親科展。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容