Last active
February 1, 2022 14:21
-
-
Save rk76feWF/669ea3698b2f5f2f38156e09a4025e48 to your computer and use it in GitHub Desktop.
たぐちのやつの修正
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import numpy as np | |
import folium | |
import statistics | |
import openpyxl | |
#入力データ設定 | |
prefix1 = "https://www.opendata.metro.tokyo.lg.jp/suisyoudataset/" # 東京都 | |
input_csv1 = prefix1 + "130001_public_wireless_lan.csv" | |
prefix2 = "http://www.city.shinjuku.lg.jp/content/" # 新宿区 | |
input_csv2 = prefix2 + "000254445.csv" | |
prefix3 = "https://www.opendata.metro.tokyo.lg.jp/suisyoudataset/" # 葛飾区 | |
input_csv3 = prefix3 + "131229_public_wireless_lan.csv" | |
prefix4 = "https://www.opendata.metro.tokyo.lg.jp/ootaku/" # 大田区 | |
input_csv4 = prefix4 + "131113_public_wireless_lan.csv" | |
prefix5 = "https://www.opendata.metro.tokyo.lg.jp/suisyoudataset/" # 北区 | |
input_csv5 = prefix5 + "131172_public_wireless_lan.csv" | |
prefix6 = "https://www.city.tokyo-nakano.lg.jp/dept/107000/d027582_d/fil/" # 中野区 | |
input_csv6 = prefix6 + "131148_public_wireless.csv" | |
prefix7 = "https://www.city.itabashi.tokyo.jp/_res/projects/default_project/_page_/001/010/232/" # 板橋区 | |
input_csv7 = prefix7 + "attach_96085.csv" | |
prefix8 = "https://www.city.koto.lg.jp/012105/documents/" # 江東区 | |
input_csv8 = prefix8 + "131083_kotocity_public_wireless_lan.csv" | |
prefix9 = "https://www.city.bunkyo.lg.jp/library/opendata-bunkyo/01tetsuduki-kurashi/04kosyumusenlan/" # 文京区 | |
input_csv9 = prefix9 + "kosyumusenlan.csv" | |
prefix10 = "https://data.bodik.jp/dataset/35729c1a-8de0-4ab7-af6d-a023af85fa7a/resource/24857d5d-b1a8-49e9-9878-707fba40163d/download/" # 目黒区 | |
input_csv10 = prefix10 + "131105_public_wireless_lan_20200331.csv" | |
prefix11 = "https://opendata.city.minato.tokyo.jp/dataset/ec151316-0fbd-4646-8cfa-4039b98be199/resource/d02ec3d4-7c47-4538-bdf8-05167c5f7112/download/" # 港区 | |
input_csv11 = prefix11 + "131032_public_wireless_lan.csv" | |
prefix12 = "https://www.city.taito.lg.jp/kusei/online/opendata/shisethutizujouhou.files/" # 台東区 | |
input_csv12= prefix12 + "20211130Taito_freeWi-Fi_AccessPoint.csv" | |
prefix13 = "https://www.city.nerima.tokyo.jp/kusei/tokei/opendata/opendatasite/kanko/nerima_free_wi-fi.files/" # 練馬区 | |
input_csv13 = prefix13 + "131202_public_wireless_lan.csv" | |
# ①,読み込み設定 | |
wifi_df_1 = pd.read_csv(input_csv1, encoding="shift-jis") # 東京都 | |
wifi_df_2 = pd.read_csv(input_csv2, encoding="shift-jis") # 新宿区 | |
wifi_df_3 = pd.read_csv(input_csv3, encoding="shift-jis") # 葛飾区 | |
wifi_df_4 = pd.read_csv(input_csv4, encoding="shift-jis") # 大田区 | |
wifi_df_5 = pd.read_csv(input_csv5, encoding="shift-jis") # 北区 | |
wifi_df_6 = pd.read_csv(input_csv6, encoding="UTF-8") # 中野区 | |
wifi_df_7 = pd.read_csv(input_csv7, encoding="shift-jis") # 板橋区 | |
wifi_df_8 = pd.read_csv(input_csv8, encoding="shift-jis") # 江東区 | |
wifi_df_9 = pd.read_csv(input_csv9, encoding="shift-jis") # 文京区 | |
wifi_df_10 = pd.read_csv(input_csv10, encoding="shift-jis") # 目黒区 | |
wifi_df_11 = pd.read_csv(input_csv11, encoding="UTF-8") # 港区 | |
wifi_df_12 = pd.read_csv(input_csv12, encoding="shift-jis") # 台東区 | |
wifi_df_13 = pd.read_csv(input_csv13, encoding="shift-jis") # 練馬区 | |
# ②,検索条件の設定 | |
print("検索したい地域を入力してください") | |
print("(例)品川区、") | |
w_search = input("入力") | |
# ③,①で読み込んだファイルの'住所'列の中に②で設定した単語が含まれている項目のみを抽出 | |
loc_1 = wifi_df_1[wifi_df_1["住所"].str.contains(w_search, na=False)] # 東京都 | |
loc_2 = wifi_df_2[wifi_df_2["住所"].str.contains(w_search, na=False)] # 新宿区 | |
loc_3 = wifi_df_3[wifi_df_3["住所"].str.contains(w_search, na=False)] # 葛飾区 | |
loc_4 = wifi_df_4[wifi_df_4["住所"].str.contains(w_search, na=False)] # 大田区 | |
loc_5 = wifi_df_5[wifi_df_5["住所"].str.contains(w_search, na=False)] # 北区 | |
loc_6 = wifi_df_6[wifi_df_6["住所"].str.contains(w_search, na=False)] # 中野区 | |
loc_7 = wifi_df_7[wifi_df_7["住所"].str.contains(w_search, na=False)] # 板橋区 | |
loc_8 = wifi_df_8[wifi_df_8["住所"].str.contains(w_search, na=False)] # 江東区 | |
loc_9 = wifi_df_9[wifi_df_9["住所"].str.contains(w_search, na=False)] # 文京区 | |
loc_10 = wifi_df_10[wifi_df_10["住所"].str.contains(w_search, na=False)] # 目黒区 | |
loc_11 = wifi_df_11[wifi_df_11["住所"].str.contains(w_search, na=False)] # 港区 | |
loc_12 = wifi_df_12[wifi_df_12["住所"].str.contains(w_search, na=False)] # 台東区 | |
loc_13 = wifi_df_13[wifi_df_13["住所"].str.contains(w_search, na=False)] # 練馬区 | |
# ④,地図の中心座標を設定するために、③で抽出した項目ごとの座標の平均値を求める | |
lat_1 = loc_1.mean()["緯度"] | |
long_1 = loc_1.mean()["経度"] | |
lat_2 = loc_2.mean()["緯度"] | |
long_2 = loc_2.mean()["経度"] | |
lat_3 = loc_3.mean()["緯度"] | |
long_3 = loc_3.mean()["経度"] | |
lat_4 = loc_4.mean()["緯度"] | |
long_4 = loc_4.mean()["経度"] | |
lat_5 = loc_5.mean()["緯度"] | |
long_5 = loc_5.mean()["経度"] | |
lat_6 = loc_6.mean()["緯度"] | |
long_6 = loc_6.mean()["経度"] | |
lat_7 = loc_7.mean()["緯度"] | |
long_7 = loc_7.mean()["経度"] | |
lat_8 = loc_8.mean()["緯度"] | |
long_8 = loc_8.mean()["経度"] | |
lat_9 = loc_9.mean()["緯度"] | |
long_9 = loc_9.mean()["経度"] | |
lat_10 = loc_10.mean()["緯度"] | |
long_10 = loc_10.mean()["経度"] | |
lat_11 = loc_11.mean()["緯度"] | |
long_11 = loc_11.mean()["経度"] | |
lat_12 = loc_12.mean()["緯度"] | |
long_12 = loc_12.mean()["経度"] | |
lat_13 = loc_13.mean()["緯度"] | |
long_13 = loc_13.mean()["経度"] | |
# ⑤,④で求めた平均値を1つの変数にまとめる | |
lat_0 = [lat_1, lat_2, lat_3, lat_4, lat_5, lat_6, lat_7, lat_8, lat_9, lat_10, lat_11, lat_12, lat_13] | |
long_0 = [long_1, long_2, long_3, long_4, long_5, long_6, long_7, long_8, long_9, long_10, long_11, long_12, long_13] | |
# ⑥,④で求めた項目ごとの平均値をまとめて全体の平均を求める(nanになっている項目は除いて平均を算出する) | |
latitude = np.nanmean(lat_0) | |
longitude = np.nanmean(long_0) | |
# ⑦,③で抽出した②の条件と部分一致する項目から経度と | |
lat_pin_1 = loc_1['緯度'] | |
long_pin_1 = loc_1['経度'] | |
lat_pin_2 = loc_2['緯度'] | |
long_pin_2 = loc_2['経度'] | |
lat_pin_3 = loc_3['緯度'] | |
long_pin_3 = loc_3['経度'] | |
lat_pin_4 = loc_4['緯度'] | |
long_pin_4 = loc_4['経度'] | |
lat_pin_5 = loc_5['緯度'] | |
long_pin_5 = loc_5['経度'] | |
lat_pin_6 = loc_6['緯度'] | |
long_pin_6 = loc_6['経度'] | |
lat_pin_7 = loc_7['緯度'] | |
long_pin_7 = loc_7['経度'] | |
lat_pin_8 = loc_8['緯度'] | |
long_pin_8 = loc_8['経度'] | |
lat_pin_9 = loc_9['緯度'] | |
long_pin_9 = loc_9['経度'] | |
lat_pin_10 = loc_10['緯度'] | |
long_pin_10 = loc_10['経度'] | |
lat_pin_11 = loc_11['緯度'] | |
long_pin_11 = loc_11['経度'] | |
lat_pin_12 = loc_12['緯度'] | |
long_pin_12 = loc_12['経度'] | |
lat_pin_13 = loc_13['緯度'] | |
long_pin_13 = loc_13['経度'] | |
latitude_pin = pd.concat([lat_pin_1, lat_pin_2, lat_pin_3, lat_pin_4, lat_pin_5, lat_pin_6, lat_pin_7, lat_pin_8, lat_pin_9, lat_pin_10, lat_pin_11, lat_pin_12, lat_pin_13]) | |
longitude_pin = pd.concat([long_pin_1, long_pin_2, long_pin_3, long_pin_4, long_pin_5, long_pin_6, long_pin_7, long_pin_8, long_pin_9, long_pin_10, long_pin_11, long_pin_12, long_pin_13]) | |
location_pin = pd.concat([latitude_pin, longitude_pin], axis=1) | |
# ズームレベル20で、中心座標にして、地図を作る | |
m = folium.Map(location=[latitude, longitude], zoom_start=15) | |
#マーカーに、ポップアップと、クリックミーを付ける | |
for row in location_pin.itertuples(): | |
folium.Marker([row[1], row[2]]).add_to(m) #,popup='name',tooltip='click me'# print(location_pin) | |
#セーブする | |
#m.save("sheeePark.html") # これいらない。 | |
#表示する | |
m |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
既存のコードをあまり変えずにプログラムを動かすとしたらこんな感じ。