こんにちは。TATです。
今日のテーマは「NUMBEOのデータから世界の生活コストを比較する」です。
NUMBEOには、生活コスト(Cost of Living)などに関するデータがまとめられています。
このデータを使って、世界の生活コストを比較してみたいと思います。
特に日本の生活コストが世界に比べてどれくらいの位置にいるのかを知りたいところです。
目次
【Pythonでデータ分析】NUMBEOのデータから世界の生活コストを比較する
データの準備
まずは分析に使用するデータを準備します。
データはNUMBEOから
データの取得先はNUMBEOです。
ここにはCost of Living(生活コスト)やQuality of Life(生活の質)などのデータがまとめられています。
誰でも無料で見ることが可能です。
ここでは国別のCost of Living(生活コスト)を比較するので、Cost of Living Index by Countryを参考にします。
取得した時点(2021年8月)で最新だったMid 2021のデータを取得します。
スクレイピングでサクッと取得
データはサクッとスクレイピングで取得しました。
数行でデータの取得は完了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import pandas as pd import requests from bs4 import BeautifulSoup # urlを定義 url = "https://www.numbeo.com/cost-of-living/rankings_by_country.jsp" # htmlを取得 r = requests.get(url) soup = BeautifulSoup(r.content, "html.parser") # tableを抽出 table = soup.find("table", {"id":"t2"}) # DataDrameに変換 df = pd.read_html(str(table))[0] |
取得できたデータがこちらです。
requestsで取得するとRankデータが空になっていたので追加します。
rank関数を使えば1行で完了です。
これでデータの準備は完了しました。
世界の生活コストを比較する
データの取得が完了したところで、実際にデータをみていきます。
データの全体像を把握する
まずはデータの全体像を把握します。
これにはdescribe関数やinfo関数、さらにseabornのpairplotなどが便利です。
まずはdescribe関数を表示してみます。
上記の通り、各カラムのデータ数や平均値などの統計データはまとめられています。
countが139となっているので、139カ国のデータがあることがわかります。
次にinfo関数です。
これでは各カラムのデータの型やメモリ使用量などがわかります。
最後にseabornのpairplotです。
ちょっと細かくて申し訳ないのですが、pairplotを使うと各カラムのヒストグラムと、カラム間の相関を把握することができます。
データサイズによっては表示するのに時間を要しますが、データの把握をするにはとても便利なのでオススメです。
概ね比例してることがわかりますね。
各カラムごとのトップ10をみる
それではデータを少し詳しくみていきます。
まずは各カラムのトップ10を見ていきます。
1カラムずつ見ていくと長ったらしくなるのでまとめました。
全体(Cost of Living Index)の1位はBermudaという聞きなれない国です。
こちらはバミューダ諸島でイギリス領の国のようです。
我々にも馴染みのある国で言えば、1位はスイスかなと思います。
Rent Index(賃料)を見ると、香港やシンガポールがトップに入ってきますね。
これらの国は、面積の非常に限られたエリアに多くの人が住んでいるので、家賃はかなり高くなっています。
Groceries(食料品)で見ると、8位に日本が入っていますね。
ちょっとこれは意外でした。
Resutaurant Price Index(レストラン価格)で見ると、スイスに加えてノルウェーやデンマークなどの北欧も上位にランクインしてきました。
Local Purchasing Power(現地の購買力)を見ると、アメリカやドイツなどの経済の強い国が並んでいます。
さらにUAEやサウジアラビアなどの中東諸国も目立ちます。
各カラムをIndexから順位に変換してみる
ここからは少しデータの見方を変えてみます。
ここまではIndexでデータを見てきましたが、それぞれのカラムを順位で表示してみます。
こうすることで、国ごとで各カラムが全体で何位なのかを一目で把握することができます。
これにはpandasのrank関数を使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 | # Rankに変換するカラムを定義 cols = [ 'Cost of Living Index', 'Rent Index', 'Cost of Living Plus Rent Index', 'Groceries Index', 'Restaurant Price Index', 'Local Purchasing Power Index' ] # 各カラムで順位を計算する カラム名はIndexをRankに置換する for col in cols: df[col.replace("Index", "Rank")] = df[col].rank(ascending=False) |
完成したデータがこちらです。
各カラムのRankが追加されました。
これで、Indexではなくて、各項目が全体で何位なのかが一目でわかるようになりました。
G7とG20で比較する
Rankもわかるようになったところで、次に国を少し絞り込んでデータを比較してみます。
日本も含まれるG7とG20で比較してみましょう。
このG7やG20の国リストを取得するにはcountrygroupsを使うと便利です。
G20のEUはデータにはないので、これは無視します。
まずはG7のデータです。
比較しやすいようにRankだけを表示しました。
アメリカやドイツは日本より全体的は生活コストは下ですが、現地の購買力は高いですね。
堅調な経済環境であることがわかります。
正直なところ、アメリカの方が生活コストは高そうな印象がありますが、地域差が凄まじいので、全体で見ると日本よりも下ということになるようです。
ただ賃料を含めたCost of Living Plus Rent Rankで見ると、アメリカの方が日本よりも高くなります。
Restaurant Price Rankなんかを見ると、日本が最下位です。
特に欧米を訪れると実感しますが、日本のレストランのコスパは半端ないです。
安くて美味しいお店がたくさんあります。
一方で、アメリカとかにいくともちろん安い店はありますが、味もイマイチになります。
きっちり値段に比例して質も変わってくるのが現状です。
日本は安くても味が美味しいので、レストランのコスパで見ると日本は先進国の中で最強だと思います。
次にG20です。
現地の購買力で見るとやはり経済が堅調なアメリカやドイツ、オーストラリアが上位を占めています。
日本はサウジアラビアよりも低いですね。。。
レストラン価格を見ると、日本ややはり他の先進国よりもずば抜けて低いことがわかります。韓国も低いですね。
韓国は全体的な順位としてはそこまでではありませんが、Groceries(食料品)の順位が4位と非常に高いですね。
日本と韓国は特にレストランが安い
G20の結果を踏まえて、少し散布図でデータを見てみました。
Cost of Living IndexとRestaurant Price Indexを表示してみます。
G20に絞っています。
はっきりを分かれる結果となってなかなか面白いですね。
Cost of Living Indexの60くらいに大きな隔たりがあります。
ここが先進国との境目になる感じでしょうか。
右側のグループを見ると、日本と韓国がずば抜けてレストラン価格が低いことがわかりますね。
こうしてグラフ化してあげると差が簡単に可視化できます。
ちなみにOECDで見てみるとこうなります。
基本的にはCost of Living Indexが上がるにつれてRestaurant Price Indexも上昇するという関係になっています。
しかし、日本と韓国だけはかなり外れた位置にあることがわかります。
世界と比較しても生活コストに対してレストラン価格が異常に低いということがデータからよくわかりますね。
屋台飯が発展してる国はレストラン価格が低い?
興味が湧いてきたので全データでも出してみました。
ごちゃごちゃしてみにくいですが、外れているのは日本や韓国の他に、香港やシンガポールや台湾などが目立ちますね。
これをみてピンときました。
屋台飯が発展しているところはレストラン価格が低くなる傾向にあるのでしょうかね、たぶんw
日本はそこまで屋台飯は発展していないのでやはり異常なんだなと思います。
デフレが続き経済成長が滞ったこの数十年間の変化を表しているのかもしれません。
このようにデータを比較していると色々な発見があって面白いですね。
(おまけ)東京とニューヨークを比較する
最後にCityで比較してみます。
これはPythonは使わずに、サイトで比較するだけですw
NUMBEOには、「Cost of Living Comparison」というページがあり、ここにCityを2つ入れるとそれらを簡単に比較することができます。
これを見るとニューヨークがいかに高いかがよくわかります。
いくつかピックアップしてみます。
まずはレストランです。
(参照ページ)
レストランはニューヨークが圧倒的に高いですね。
マクドナルドのメニューで比較しても40%の差があります。
高くないレストラン(Inexpensive Restaurant)に至っては120%の差があります。
日本のレストランのコスパの良さがこのデータからもわかります。
次に住宅や給料を見てみます。
(参照ページ)
特に都市エリアだと、1平方メートルあたりの価格は20%ほどニューヨークの方が高いです。
恐ろしいですね。郊外だとそこまで差は見られません。
そして最後に給料です。
Average Monthly Net Salary(税引後の平均月収)で見ると、ニューヨークの方が70%も高くて平均で月収70万円ありますw
この差はすごいですね。
東京に比べて物価も高いですが、給料も非常に高いことがわかります。
まとめ
いかがでしたでしょうか。
ここでは「NUMBEOのデータから世界の生活コストを比較する」というテーマで、世界の生活コストをいろいろ比較してみました。
ざっくりとしたデータしか見なかったので、そこまで突っ込んだ分析まではできませんでしたが、それでもいろいろなことがわかりました。
データを見ると、やはり日本の生活コストは世界と比較すると高い水準にあります。
しかしながら、レストラン価格は非常に低くて、大変コスパがいいということもわかりました。
デフレで物価が上がらない状況が長きにわたって続いていますが、その結果がこのレストラン価格の異常な低さに出ているのでしょうか。
もしご興味があれば皆さんも調べてみてください。
そして何かわかったら僕にも教えてくださいw
ここまで読んでくださってありがとうございました。