各都道府県の食べログデータを比較してみる

スポンサーリンク
tech系(python)
スポンサーリンク

はじめに

今まで、全国47都道府県の食べログの情報と、じゃらんの情報からコスパの良いスポットを探してきました。

一覧はこちらに記載しました。

今回は、その47都道府県全国のデータを基に、都道府県間の情報を比較して見ようと思います。

データは2024年に収集したデータです。

比較

各都道府県別のお店の数は以下のようになりました。

東京都:94134
北海道:25944
神奈川県:25725
愛知県:23945
千葉県:22892
埼玉県:22190
兵庫県:21597
大阪府:20008
福岡県:18476
茨城県:12531
長野県:11714
静岡県:11648
沖縄県:11482
広島県:10637
宮城県:10598
群馬県:9816
岐阜県:9050
福島県:8642
三重県:8472
栃木県:8069
山形県:6510
滋賀県:6346
山口県:6038
鹿児島県:6013
青森県:5992
岩手県:5941
京都府:5522
奈良県:5504
長崎県:5079
熊本県:4968
山梨県:4945
愛媛県:4876
岡山県:4838
秋田県:4692
和歌山県:4495
宮崎県:4460
石川県:4383
香川県:4153
大分県:4131
福井県:3871
富山県:3699
佐賀県:3618
島根県:3316
高知県:2934
鳥取県:2791
徳島県:2737
新潟県:1087

東京がダントツで多いです。(正確には、食べログで表示できる範囲の数なので、実際はもっと多いです)

ジャンル別のお店の数

さて、各都道府県で多いお店はなにになるのでしょうか?

ジャンルはDataframeの中のリストの要素で入っているので、以下のプログラムでジャンル別で多いお店を求めてみます。

# 1. ジャンルを1行1ジャンルに展開
df_exploded = restaurant_data.explode('ganre_tags')

# 2. 都道府県・ジャンルごとの件数をカウント
ganre_counts = df_exploded.groupby(['prefecture', 'ganre_tags']).size().reset_index(name='count')

# 3. 都道府県ごとに「countが最大の行」を抽出(ジャンルが一番多い)
idx = ganre_counts.groupby('prefecture')['count'].idxmax()
top_ganre_per_pref = ganre_counts.loc[idx].reset_index(drop=True)

# 結果表示
print(top_ganre_per_pref)

以下のようになりました。

三重県:カフェ:1120
京都府:カフェ:733
佐賀県:居酒屋:413
兵庫県:カフェ:2996
北海道:居酒屋:3371
千葉県:居酒屋:2970
和歌山県:カフェ:670
埼玉県:居酒屋:3058
大分県:カフェ:485
大阪府:居酒屋:4033
奈良県:カフェ:948
宮城県:居酒屋:1210
宮崎県:居酒屋:580
富山県:居酒屋:442
山口県:カフェ:715
山形県:ラーメン:998
山梨県:カフェ:648
岐阜県:カフェ:1243
岡山県:カフェ:807
岩手県:ラーメン:787
島根県:カフェ:408
広島県:居酒屋:395
徳島県:居酒屋:266
愛媛県:居酒屋:600
愛知県:カフェ:3601
新潟県:ラーメン:274
東京都:居酒屋:20042
栃木県:ラーメン:916
沖縄県:居酒屋:1887
滋賀県:カフェ:915
熊本県:居酒屋:576
石川県:カフェ:502
神奈川県:居酒屋:4169
福井県:カフェ:491
福岡県:居酒屋:3451
福島県:ラーメン:1012
秋田県:居酒屋:620
群馬県:ラーメン:926
茨城県:居酒屋:1313
長崎県:居酒屋:654
長野県:カフェ:1430
青森県:居酒屋:761
静岡県:カフェ:1272
香川県:カフェ:670
高知県:居酒屋:409
鳥取県:カフェ:410
鹿児島県:居酒屋:777

カフェと居酒屋ばかりですね😂 あとラーメン。

これだと都道府県の特色が分からないので、以下のジャンルを省いて再度見てみます。

"カフェ", "居酒屋", "ラーメン", "その他"

結果は以下のようになりました。

三重県:日本料理:497
京都府:日本料理:421
佐賀県:日本料理:248
兵庫県:日本料理:1206
北海道:食堂:1751
千葉県:食堂:1226
和歌山県:喫茶店:323
埼玉県:中華料理:1158
大分県:日本料理:277
大阪府:海鮮:1354
奈良県:日本料理:338
宮城県:食堂:674
宮崎県:食堂:301
富山県:日本料理:224
山口県:日本料理    402
山形県:そば:542
山梨県:食堂:336
岐阜県:喫茶店:863
岡山県:日本料理:331
岩手県:食堂:632
島根県:食堂:227
広島県:お好み焼き:921
徳島県:日本料理:196
愛媛県:食堂:362
愛知県:喫茶店:1664
新潟県:日本料理:85
東京都:日本料理:5369
栃木県:そば:600
沖縄県:沖縄料理:941
滋賀県:日本料理:397
熊本県:食堂:306
石川県:日本料理:362
神奈川県:海鮮:1358
福井県:そば:266
福岡県:焼き鳥:1201
福島県:食堂:778
秋田県:食堂:468
群馬県:食堂:658
茨城県:食堂:829
長崎県:食堂:356
長野県:旅館・民宿:996
青森県:食堂:555
静岡県:日本料理:733
香川県:うどん:479
高知県:喫茶店:194
鳥取県:食堂:168
鹿児島県:食堂:400

今度は、日本料理と食堂ばかりです😂

まあ、日本料理は和食なので、まあ多い事は納得できますが、これだと地域ごとの特色があまり出ないです。

なので以下も除いてみます。

"日本料理", "食堂"

で、結果は以下のようになりました。

三重県:海鮮:470
京都府:喫茶店:280
佐賀県:和菓子:209
兵庫県:喫茶店:1174
北海道:海鮮:1325
千葉県:コンビニ・スーパー:1182
和歌山県:喫茶店:323
埼玉県:中華料理:1158
大分県:焼肉:164
大阪府:海鮮:1354
奈良県:喫茶店:284
宮城県:海鮮:503
宮崎県:焼肉:185
富山県:海鮮:217
山口県:パン:269
山形県:そば:542
山梨県:旅館・民宿:321
岐阜県:喫茶店:863
岡山県:パン:276
岩手県:そば:304
島根県:喫茶店:167
広島県:お好み焼き:921
徳島県:うどん:178
愛媛県:喫茶店:226
愛知県:喫茶店:1664
新潟県:海鮮:81
東京都:バー:5333
栃木県:そば:600
沖縄県:沖縄料理:941
滋賀県:パン:289
熊本県:海鮮:192
石川県:寿司:231
神奈川県:海鮮:1358
福井県:そば:266
福岡県:焼き鳥   1201
福島県:そば:473
秋田県:和菓子:167
群馬県:うどん:591
茨城県:そば:662
長崎県:海鮮:279
長野県:旅館・民宿:996
青森県:海鮮:249
静岡県:海鮮:687
香川県:うどん:479
高知県:喫茶店:194
鳥取県:喫茶店:167
鹿児島県:旅館・民宿:258

千葉県の「コンビニ・スーパー」とか、今度は喫茶店が多いじゃないかとかまだツッコミどころはありますが、地域ごとの特色が出てきているのではないでしょうか。

都道府県ごと点数の高いジャンル

もう一つ気になったのが、点数です。

食べログって点数がありますが、都道府県ごとに評価が高いジャンルがあるんじゃないかと思いまして、そちらを求めてみました。

ジャンル毎の平均の点数を求めて最も点数の高いジャンルをもとめます。

コードだと以下のようなコードになっています。

# ジャンルがリストの場合はまず explode
df_exploded = restaurant_data.explode('ganre_tags')

# 数値に変換(エラーが出るものは NaN に)
df_exploded['score'] = pd.to_numeric(df_exploded['score'], errors='coerce')

# NaN を除去(評価が入ってないデータは除く)
df_exploded = df_exploded.dropna(subset=['score'])

# 都道府県×ジャンルごとの平均評価を計算
mean_rating = (
    df_exploded
    .groupby(['prefecture', 'ganre_tags'])['score']
    .mean()
    .reset_index()
)

# 各都道府県ごとに最も平均評価が高いジャンルを抽出
top_genre_by_pref = (
    mean_rating
    .sort_values(['prefecture', 'score'], ascending=[True, False])
    .drop_duplicates('prefecture')
    .reset_index(drop=True)
)

# 結果表示
print(top_genre_by_pref)

結果は以下のようになりました。

三重県:イノベーティブ:3.523333
京都府:汁なし担々麺:3.435000
佐賀県:スリランカ料理:3.500000
兵庫県:中東料理:3.670000
北海道:南アジア料理:3.580000
千葉県:イノベーティブ:3.533333
和歌山県:オーベルジュ:3.480000
埼玉県:立ち食い寿司:3.470000
大分県:すっぽん:3.860000
大阪府:南アジア料理:3.645000
奈良県:イノベーティブ:3.657143
宮城県:イノベーティブ:3.585000
宮崎県:ドイツ料理:3.590000
富山県:立ち食い寿司:3.600000
山口県:ビアホール:3.350000
山形県:ろばた焼き:3.590000
山梨県:イノベーティブ:4.205000
岐阜県:もつ焼き:3.496667
岡山県:イノベーティブ:3.580000
岩手県:イノベーティブ:3.970000
島根県:すっぽん:4.350000
広島県:屋形船・クルージング:3.500000
徳島県:どら焼き:3.460000
愛媛県:ちゃんこ鍋:3.580000
愛知県:シンガポール料理:3.650000
新潟県:豚料理:3.980000
東京都:棒寿司:3.540000
栃木県:いなり寿司:3.390000
沖縄県:かき:3.450000
滋賀県:オーベルジュ:3.646667
熊本県:火鍋:3.460000
石川県:イノベーティブ:3.867500
神奈川県:ほうとう:3.490000
福井県:立ち食いそば:3.470000
福岡県:イノベーティブ:3.661500
福島県:水炊き:3.550000
秋田県:かに:3.440000
群馬県:あんこう:3.670000
茨城県:ロシア料理:3.520000
長崎県:イノベーティブ:4.146667
長野県:イノベーティブ:3.605000
青森県:台湾まぜそば:3.350000
静岡県:イノベーティブ:3.577500
香川県:うどんすき:3.685000
高知県:オーベルジュ:3.450000
鳥取県:台湾まぜそば:3.610000
鹿児島県:ジンギスカン:3.600000

イノベーティブが多いですね。

最後に

各都道府県の個性があっていいですね!

もっと深堀したいと思いました。

タイトルとURLをコピーしました