家計調査を活用して、馴染みの街の支出上位品目を探ってみよう

# やったこと

家計調査のデータを用いて「ギョーザといえば浜松や宇都宮、宮崎が有名だけれど、地元は何の支出で上位なのかな」が気になったので、GoogleスプレッドシートとPythonで簡単に検索できるようにしてみました。


:::note info
本記事で扱う家計調査データは、**政令指定都市および県庁所在地** に限定されています。また、一部世帯を抽出したサンプリング調査です。全自治体をカバーしていない点やサンプルの限定性について予めご了承ください。
:::


# 家計調査とは

総務省統計局が毎年行う<a href="https://ja.wikipedia.org/wiki/%E5%9F%BA%E5%B9%B9%E7%B5%B1%E8%A8%88%E8%AA%BF%E6%9F%BB">基幹統計調査</a>。全国168自治体の約8,000世帯が対象となっています。この調査は、サンプル数の少なさに留意する必要がありますが、日本の家計収支の実態を把握するための重要な基礎データとなっています。

https://www.stat.go.jp/data/kakei/1.html#kakei_2


特に、自治体別・品目別の調査結果は、毎年2月に公表されメディアでも頻繁に取り上げられるなど、まちおこしの話題としても注目されています。

https://www3.nhk.or.jp/news/html/20240206/k10014349311000.html

# やったこと

Googleスプレッドシートに家計調査のデータを取り込み、Pythonを用いて「馴染みの街の支出上位品目」を簡単に出力できる方法を開発しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119284/202bb208-f57b-2cf2-e430-0aedc0be2f78.png)



## Googleスプレッドシートの準備

2023年のデータを基に、2人以上の世帯を対象とした年間の品目別消費支出額データをスプレッドシートに準備しました。Pythonコードを用いてスプレッドシートのURLを変更することで、異なる調査結果や年度のデータにも対応可能です。


https://docs.google.com/spreadsheets/d/1wQFZ-Rh_f2OsQwZIlNTJ8ca-0MbJmqFZ9FrnuIq20OI/edit?usp=sharing

出典：
家計調査「<a href="https://www.e-stat.go.jp/stat-search/files?page=1&query=%E9%83%BD%E5%B8%82%E9%9A%8E%E7%B4%9A%E3%83%BB%E5%9C%B0%E6%96%B9%E3%83%BB%E9%83%BD%E9%81%93%E5%BA%9C%E7%9C%8C%E5%BA%81%E6%89%80%E5%9C%A8%E5%B8%82%E5%88%A5%EF%BC%91%E4%B8%96%E5%B8%AF%E5%BD%93%E3%81%9F%E3%82%8A%E6%94%AF%E5%87%BA%E9%87%91%E9%A1%8D%EF%BC%8C%E8%B3%BC%E5%85%A5%E6%95%B0%E9%87%8F%E5%8F%8A%E3%81%B3%E5%B9%B3%E5%9D%87%E4%BE%A1%E6%A0%BC&layout=dataset&stat_infid=000040140558&metadata=1&data=1
">1世帯当たり年間の支出金額 購入数量及び平均価格_2人以上世帯</a>」

## Pythonでのデータ処理

### 結果の例
「山口市の上位3位までの品目」の出力例です。順位と金額が表示されます。例えば、干しのりやあじといった海産物が上位にランクインしており、三方を海に囲まれた山口県の特徴が反映されていることが分かります。

一方で、最上位に挙げられた「給排水関係工事費」は、元々支出頻度が低い項目です。調査対象となった世帯がたまたまリフォームを行っていた可能性が考えられます。このようなデータを見る際には、単にランキングを眺めるだけではなく、その地域で特定の品目がなぜ支持されているのか、その背景や文化に目を向けることが重要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119284/95225ada-5b89-cf3f-36e8-98c7cad3ccb9.png)

### Pythonコード

Pythonコードはこちらです。コピペしてご使用ください。

```python
import pandas as pd

##関数を定義
def find_top_items_rank_and_price(sheet_url, city='山口市', top_n=6):
    # スプレッドシートを読み込み
    csv_export_url = sheet_url.replace('/edit?usp=sharing', '/export?format=csv&gid=0')
    data = pd.read_csv(csv_export_url)

    # 結果格納用のリスト
    top_items_rank_and_price = []

    # 各品目についてループ処理
    for item in data.columns[1:]: 
        # 品目ごとにデータをソート
        sorted_data = data.sort_values(by=item, ascending=False).reset_index(drop=True)    
        # 指定された市区町村が指定された上位N位以内か確認し、順位と金額を取得
        city_row = sorted_data[sorted_data['市区町村'] == city]
        if not city_row.empty and city in sorted_data.iloc[:top_n]['市区町村'].values:
            rank = sorted_data.index[sorted_data['市区町村'] == city].tolist()[0] + 1
            price = city_row[item].values[0]  # 指定された市区町村の金額を取得
            top_items_rank_and_price.append([item, rank, price])

    # 結果をDataFrameに変換しソート（'順位'で昇順に、次に'金額'で降順に）
    top_items_rank_and_price_df = pd.DataFrame(top_items_rank_and_price, columns=['品目', '順位', '金額'])
    top_items_rank_and_price_df_sorted = top_items_rank_and_price_df.sort_values(by=['順位','金額'], ascending=[True, False])

    return top_items_rank_and_price_df_sorted
    

#関数を実行
#まずは3つの変数を指定
city = '山口市'
top_n = 3
sheet_url = 'https://docs.google.com/spreadsheets/d/1wQFZ-Rh_f2OsQwZIlNTJ8ca-0MbJmqFZ9FrnuIq20OI/edit?usp=sharing'

# 結果を取得
top_items_rank_and_price = find_top_items_rank_and_price(sheet_url, city=city, top_n=top_n)
print(top_items_rank_and_price)
```
GoogleスプレッドシートのURLは先ほど示したスプレッドシートを指定してます。お手元でスプレッドシートを作成して、URLの変数を変えることで、別の調査結果や他年度の結果も同様に検索することが出来るようになります。必要に応じてご自身でカスタマイズしてみてください。

# おわりに
家計調査は、その対象が県庁所在地や政令指定都市に限られており、調査対象世帯も限定されているため、特に支出頻度が低い項目（家電製品や工事費用など）に関しては結果のばらつきが大きいことに注意が必要です。しかし、この調査は毎年、まちおこしの観点からも大きな関心を集めています。

生活に密接な統計データとして、みなさんもぜひデータを触ってみましょう！