Skip to content

Instantly share code, notes, and snippets.

@rk76feWF
Last active February 1, 2022 14:21
Show Gist options
  • Save rk76feWF/669ea3698b2f5f2f38156e09a4025e48 to your computer and use it in GitHub Desktop.
Save rk76feWF/669ea3698b2f5f2f38156e09a4025e48 to your computer and use it in GitHub Desktop.
たぐちのやつの修正
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
@rk76feWF
Copy link
Author

rk76feWF commented Feb 1, 2022

既存のコードをあまり変えずにプログラムを動かすとしたらこんな感じ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment