やりたいこと
プログラミング初心者の学生です
提出間近の卒論で詰まっているので教えて欲しいです...
緯度経度含む以下のようなcsvファイルから,逆ジオコーディングして住所(必要なのは都道府県のみ)を明らかにしたいです
sample.csv
1Unnamed: 0,created_at,text,x,y 20,2021-01-19T14:07:23.000Z,"こんにちは",129.8709379,32.75250816
以下が理想のcsvファイルです
result.csv
1Unnamed: 0,created_at,text,x,y,area 20,2021-01-19T14:07:23.000Z,"こんにちは",129.8709379,32.75250816,東京都
現状の問題点
以下のサイトを参考にしました
Pythonで逆ジオコーディング【国土地理院API】
以下のコードを実行したのですが,元のcsvファイルに都道府県がついた新しいcsvファイルが出力されません
(エラーも何も出ずターミナルの実行が終わります)
新しくできたcsvファイルを保存できていないからでしょうか?
reverse_geocoding.py
1import pandas as pd 2from urllib import request,parse 3import json 4 5class ReverseGeocoding(): 6 def create_reversed_geocoding_dataset(self): 7 df1 = pd.merge(self._set_muniCdCode(),self._reverse_geocoding(),on='muniCd',how='inner') 8 df2 = pd.merge(self._create_yamanote_dataframe(),df1,left_index=True,right_index=True) 9 return df2 10 def _reverse_geocoding(self): 11 df=self._create_yamanote_dataframe() 12 reverse = [] 13 lat = df['latitude'] 14 lon = df['longitude'] 15 for a,b in zip(lat,lon): 16 endpoint_url = 'https://mreversegeocoder.gsi.go.jp/reverse-geocoder/LonLatToAddress' 17 params={ 18 'lat':a, 19 'lon':b 20 } 21 res = requests.get(endpoint_url,params=params) 22 data = res.json() 23 d = data['results'] 24 reverse.append(d) 25 df1 = pd.io.json.json_normalize(reverse).astype({'muniCd': str}) 26 return df1 27 def _set_muniCdCode(self): 28 muniCd=pd.read_csv('data/municode.csv').astype({'muniCd': str}).drop(columns=['id','n']) 29 return muniCd 30 def _create_yamanote_dataframe(self): 31 df=pd.read_csv('自分の入力したcsvファイル') 32 return df
試したこと
クラスを設定しただけで実行できていないということなのか,わかっていないです
逆ジオコーディングした結果のcsvファイルを保存する方法を教えていただけたら嬉しいです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/10 19:15
2022/01/10 19:26
2022/01/10 20:07
2022/01/10 20:09
2022/01/10 20:18 編集
2022/01/10 20:24
2022/01/10 20:37 編集
2022/01/10 20:47
2022/01/10 21:57
2022/01/10 21:59
2022/01/10 22:02
2022/01/10 22:08 編集
2022/01/10 22:15