H26_商業統計より,shpファイルとcsvを連携させる
/
H26_商業統計より,shpファイルとcsvを連携させます.
# H26_商業統計のフォーマット
# 商業統計の加工
# データの読み込み
カラムは適当に振ります.
import pandas as pd
# 仮カラム名
columns = []
for i in range(1, 97):
columns.append(f"c{i}")
# csvの読み込み
df = pd.read_csv('./data/shp_csv/H26_03_500m市区町村.csv', names=columns)
# 仙台市の抽出
仙台市の抽出 + メッシュコードの整形 + 小売売上の整数化を実行します.
# 宮城県:4
dfh = df[df['c4']==4]
# 仙台市:04101〜04105
df_city = dfh[(dfh['c11']<=105)|(dfh['c13']<=105)|(dfh['c15']<=105)|(dfh['c17']<=105)]
# KEY_CODE(メッシュ)c5~c8
df_city['KEY_CODE'] = df_city['c5'].astype(str) + \
df_city['c6'].astype(str).str.zfill(2) + \
df_city['c7'].astype(str).str.zfill(2) + \
df_city['c8'].astype(str)
# 0埋め
df_city = df_city.replace(['X', '-'], '0')
# データ型変更
df_city['c24'] = df_city['c24'].astype(int) #小売売上
# 境界データ
境界データは1次メッシュ:5740をダウンロードし,shpファイルに情報を結合させます.
# -*- coding: utf-8 -*-
import pandas as pd
import geopandas
from shapely.ops import cascaded_union
from shapely.geometry import Point, Polygon
# shpファイルの読み込み
input_geodf = geopandas.read_file("./data/shp_csv/HDDSWH5740/MESH05740.shp")
# 1次メッシュ:5740
df_city_5740 = df_city[df_city['c5']==5740]
# 地形データ
geometry = []
mids = df_city_5740['KEY_CODE'].tolist()
for mid in mids:
mdf = input_geodf[input_geodf['KEY_CODE']==mid].reset_index(drop=True)
geometry.append(mdf['geometry'][0])
# GeoDataFrameを作成
geo_df = geopandas.GeoDataFrame(df_city_5740, geometry=geometry)
# Shapeファイルの出力
geo_df.to_file(driver='ESRI Shapefile', filename="./data/shp_csv/syogyo_sendai_mesh.shp")
# QGISに投影
仙台駅周辺のみ年間8000(千万円)以上でした.(赤色着色)
# まとめ
H26_商業統計より,shpファイルとcsvを連携させました.
# 参考サイト
平成26年商業統計メッシュデータ・ダウンロード (opens new window)
e-stat 境界データ (opens new window)