Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

食べログ全国ランキング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点前後で大きな差が無く激戦に見えます。
f:id:T_A_T:20190601095315p:plain

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村