今年の夏は暑いですねー
毎日アイスを食べたくなりますね

そんなわけでアイスの価格のデータを
見てみることとしました。


解説動画はこちら



E-statに小売物価統計調査(動向編)2021年
というのが有って


結果表 1 調査品目の月別価格及び年平均価格
【都道府県庁所在市及び人口15万以上の市】
「1701 ようかん」 ~ 「1797 弁当」
というのが今回使用したデータです。

アイスは「ハーゲンダッツ・バニラ」
(295円,税込318円)を基準にしている
ようでした。

しかしe-statのデータはこんな感じで
aice

エクセルファイルになっていますが
まだエクセルなのは0点だとしても

ヘッダーに文章が有ったり
縦積みしなければいけない所を
横積みにしていたりと
相当なゴミっぷり-100点です。

なので、2回の整形、加工が必要でした。

まずはこのエクセルから
必要な部分だけをコピーして
TSV形式で保存しなおします。

aice.tsv

次はこのデータの横積みされている所から
縦積みに直します。

こんな感じのコードで整形です。
data = []
with open('aice.tsv') as _f:
    for row in _f:
        rows = row.replace('\n','').split('\t')
        data.append(rows)

data2 = []
for rows in data[2:]:
    name = rows[1]
    for i,t in enumerate(rows[4:]):
        tmp = [name , '{0:02}月分'.format(i+1) , int(t)]
        data2.append(tmp)


さて、このデータを見ていきましょう。
データフレームに読み込みします。
import pandas as pd

df = pd.DataFrame(data2 , columns=['市町村','月','価格'])

df.shape
(972, 3)


平均価格が安い地域はどこか?
df2 = df.groupby('市町村').mean('価格').sort_values('価格')

df2
スクリーンショット 2022-08-13 16.59.52


最安値の地区は?
df3 = df.sort_values('価格').head()

df3
スクリーンショット 2022-08-13 17.00.12


最安地域の分布
import seaborn as sns
from matplotlib import pyplot as plt

df4 = df[df['市町村'].isin(df2.index[0:10])]

plt.figure(figsize=(10,5))
sns.boxplot(x='市町村',y='価格', data=df4,order=df2.head(10).index)
plt.title('')
plt.show()
download


これで見ると
全国の地域の中で
最も安い値をつけたのは「浦安市」
平均価格でも「浦安市」が安くなっていました。

アイスを安く買いたければ
「浦安市」のスーパーが
安い可能性が高いですね。

でも、なんでこんなに安いんですかね?
ミッキーに脅されていたりしたら
面白いんですけどね

ちなみに
ハーゲンダッツの小売は300円くらいなので
200切っていたら相当な買いですねー

自分は安い時にまとめ買いしてます。

今年は消費量が多いので
データから家計を守るのも
大事と思います。

それでは。