食べログ全国ランキングTOP20の星をジャンル別に比較する
食べログの全国ランキングTOP20の星(レーティング)をフレンチ、ラーメン、寿司、天ぷらの4ジャンルで集計・比較し、どのような傾向にあるかを調べます。
環境
- windows10 home
- Anaconda 3/ jupyter notebook 5.6.0
- Python 3.7.0
コード
%matplotlib inline # モジュールのインポート from bs4 import BeautifulSoup as bs import requests import numpy as np import matplotlib.pyplot as plt # 関数checkrankの定義 def checkrank(genre): # ランキングページを取得しレーティング部分を抽出 rs = requests.get('https://tabelog.com/'+genre+'/rank/') soup = bs(rs.text.encode(rs.encoding), 'html.parser') selected_class = soup.findAll("span",{"class":"c-rating__val c-rating__val--strong"}) # オブジェクトbestにレーティング値を追加 for i in selected_class: point = i.text best.append(point) # ジャンルリスト作成と関数checkrank呼び出し best = [] genre_list = ['french','ramen','sushi','tempura'] for i in genre_list: checkrank(i) # 1x80の文字列データをfloatに型変換し4x20に変形 best_n = np.array(best) best_n_i = best_n.astype(np.float) best_n_r = best_n_i.reshape([4, 20]) #4系列のデータのプロット for i,j in zip(genre_list,range(5)): plt.plot(np.arange(1, 21),best_n_r[j],label = i) #プロットの表示 plt.xticks(np.arange(1, 21, 1)) plt.yticks(np.arange(3, 5.2, 0.2)) plt.legend() plt.show
実行結果
寿司は20位まで高得点が並んでいます。他のジャンルよりも点が高くなるようです。
天ぷらは1位から20位の差が大きい傾向にあります。
ラーメンは4点前後で大きな差が無く激戦に見えます。