#統計の手法2
##プログラムと結果
###建物ごとに中央値を計算する
理由としては、建物の物件数が違います。例えば1ビル50物件があれば、分布を計算する時、その重みが1ビル1物件より50倍になります。均等に計算するように、建物ごとに中央値を取ります。
conn = sqlite3.connect(‘info.db’)
df = pd.read_sql_query(“SELECT pid,price,area FROM price”, conn)
conn.close()
df[‘municipal’] = df.apply(municipal, axis=1)
dfmedian = df.groupby([‘pid’, ‘municipal’])[‘price’, ‘area’, ‘average’].median()
dfmedian_reset = dfmedian.reset_index(level=’municipal’)
区ごとに価格の分布(23区)
# グラフ
fig = go.Figure()
for i in m23_list:
dfgroup = dfmedian_reset[dfmedian_reset[‘municipal’] == i]
fig.add_trace(go.Box(x=dfgroup[‘price’], y=dfgroup[‘municipal’], boxpoints=False))
fig.update_traces(orientation=’h’, showlegend=False)
fig.update_xaxes(range=[0, 500000])
区ごとに面積の分布(23区)
# グラフ
fig = go.Figure()
for i in m23_list:
dfgroup = dfmedian_reset[dfmedian_reset[‘municipal’] == i]
fig.add_trace(go.Box(x=dfgroup[‘area’], y=dfgroup[‘municipal’], boxpoints=False))
fig.update_traces(orientation=’h’, showlegend=False)
fig.update_xaxes(range=[0, 100])
平均価格(価格 / 面積)を計算する
def average(df):
return int(df[‘price’] / df[‘area’])
df[‘average’] = df.apply(average, axis=1)
区ごとに平均価格の分布(23区)
# グラフ
fig = go.Figure()
for i in m23_list:
dfgroup = dfmedian_reset[dfmedian_reset[‘municipal’] == i]
fig.add_trace(go.Box(x=dfgroup[‘average’], y=dfgroup[‘municipal’], boxpoints=False))
fig.update_traces(orientation=’h’, showlegend=False)
平均価格と駅まで徒歩の時間の関係
# Dataframeの処理
dfmedian_reset = dfmedian.reset_index(level=’pid’)
dfmedian_reset[‘train’] = dfmedian_reset.apply(trainminute, axis=1)
# グラフ
fig = px.scatter(dfmedian_reset, x=’train’, y=’average’, height=500, width=1000)
平均価格と建物のタイプの関係
dfmedian_reset = dfmedian.reset_index(level=’pid’)
dfmedian_reset[‘type’] = dfmedian_reset.apply(buildtype, axis=1)
fig = go.Figure()
for i in ([‘マンション’, ‘アパート’]):
dfgroup = dfmedian_reset[dfmedian_reset[‘type’] == i]
fig.add_trace(go.Box(x=dfgroup[‘price’], y=dfgroup[‘type’], boxpoints=False))
fig.update_traces(orientation=’h’, showlegend=False)
fig.update_xaxes(range=[0, 500000])
fig.update_layout(height=500, width=1000)
##その他の結果