import pandas as pd
ehime_names = {
38201: "松山市",
38202: "今治市",
38203: "宇和島市",
38204: "八幡浜市",
38205: "新居浜市",
38206: "西条市",
38207: "大洲市",
38210: "伊予市",
38213: "四国中央市",
38214: "西予市",
38215: "東温市",
38356: "上島町",
38386: "久万高原町",
38401: "松前町",
38402: "砥部町",
38422: "内子町",
38442: "伊方町",
38484: "松野町",
38488: "鬼北町",
38506: "愛南町",
}
ehime_codes = {v.rstrip("県市町"): k for k, v in ehime_names.items()}
def ehime_get_code(s):
return ehime_codes.get(s.rstrip("県市町"), 0)
df1 = pd.read_excel(
"https://www.city.imabari.ehime.jp/opendata/toukei/r0110_07.xlsx",
sheet_name="第7-1表",
header=None,
)
df2 = df1.loc[df1.notnull().sum(axis=1) > 5, df1.notnull().sum() > 3].copy()
df2.columns = ["県市町", "総生産金額", "構成比", "所得金額", "所得実額", "水準"]
df2["コード"] = df2["県市町"].apply(lambda x: str(ehime_get_code(x)))
df3 = df2[df2["コード"] != "0"]
df3["差"] = df3["水準"] - 100
df3.sort_values("差", ascending=False, inplace=True)
df3.reset_index(drop=True, inplace=True)
df3.index += 1
df3
|
県市町 |
総生産金額 |
構成比 |
所得金額 |
所得実額 |
水準 |
コード |
差 |
1 |
四国中央市 |
484855 |
9.6 |
292027 |
3369 |
126.8 |
38213 |
26.8 |
2 |
今治市 |
760221 |
15 |
490024 |
3120 |
117.5 |
38202 |
17.5 |
3 |
新居浜市 |
536816 |
10.6 |
364576 |
3061 |
115.2 |
38205 |
15.2 |
4 |
松前町 |
120927 |
2.4 |
86410 |
2879 |
108.4 |
38401 |
8.4 |
5 |
西条市 |
365947 |
7.2 |
303236 |
2816 |
106 |
38206 |
6 |
6 |
東温市 |
144091 |
2.8 |
93446 |
2715 |
102.2 |
38215 |
2.2 |
7 |
上島町 |
33462 |
0.7 |
18396 |
2618 |
98.6 |
38356 |
-1.4 |
8 |
伊予市 |
106718 |
2.1 |
92461 |
2536 |
95.5 |
38210 |
-4.5 |
9 |
伊方町 |
48837 |
1 |
23257 |
2485 |
93.6 |
38442 |
-6.4 |
10 |
大洲市 |
135130 |
2.7 |
107287 |
2475 |
93.2 |
38207 |
-6.8 |
11 |
砥部町 |
57646 |
1.1 |
52413 |
2469 |
93 |
38402 |
-7 |
12 |
八幡浜市 |
123717 |
2.4 |
83884 |
2451 |
92.3 |
38204 |
-7.7 |
13 |
松山市 |
1644920 |
32.4 |
1257101 |
2447 |
92.1 |
38201 |
-7.9 |
14 |
内子町 |
43798 |
0.9 |
37979 |
2317 |
87.2 |
38422 |
-12.8 |
15 |
宇和島市 |
243976 |
4.8 |
171389 |
2257 |
85 |
38203 |
-15 |
16 |
西予市 |
103584 |
2 |
84764 |
2215 |
83.4 |
38214 |
-16.6 |
17 |
鬼北町 |
23858 |
0.5 |
22909 |
2182 |
82.2 |
38488 |
-17.8 |
18 |
久万高原町 |
30324 |
0.6 |
17866 |
2173 |
81.8 |
38386 |
-18.2 |
19 |
松野町 |
8562 |
0.2 |
8562 |
2151 |
81 |
38484 |
-19 |
20 |
愛南町 |
56789 |
1.1 |
43952 |
2059 |
77.5 |
38506 |
-22.5 |
コロプレス図
!pip install folium
!wget "https://github.com/niiyz/JapanCityGeoJson/raw/master/geojson/prefectures/38.json"
import pandas as pd
import folium
import json
m = folium.Map(
location=[33.841672, 132.765339],
tiles="https://cyberjapandata.gsi.go.jp/xyz/blank/{z}/{x}/{y}.png",
attr="国土地理院 白地図",
zoom_start=9,
)
geojson = "38.json"
folium.Choropleth(
geo_data=geojson,
data=df3,
columns=["コード", "差"],
threshold_scale=[-30, -20, -10, 0, 10, 20, 30],
key_on="id",
fill_color="OrRd",
).add_to(m)
m.save(outfile="map.html")