私は現在、ニューヨーク市のボランティアの標準化されたテスト範囲をどのように見ているかを調べるプロジェクトに取り組んでいます。地区ボラウナナンバー(DBN)を提供するデータセットがありますが、アドレスは与えられていません。 GoogleでDBNを検索すると、各高校の正確な住所が表示されます。ジオコーダを使用して非アドレスポイントを検索し、個々のコンポーネントを返し、現在のデータフレームに追加しますか?
私はパンダには新しいので、私に同行してください。私はジオコーダーを地区ボロの番号の列に通して、現在のデータフレームに出力を付加させようとしました。
import pandas as pd
import geocoder
from googlegeocoder import GoogleGeocoder
url="https://raw.githubusercontent.com/linnaha/NYCdata/master/sat_2014.csv"
satdata = pd.read_csv(url, encoding='latin-1')
satdata.head()
geocoder = GoogleGeocoder()
list_of_dbn = satdata['DBN']
for address in list_of_dbn:
try:
search = geocoder.get(address)
except ValueError:
continue
first_result = search[0]
output =first_result.formatted_address
print(output)
satdata["zip_code"]= output
それはリストを経て、アドレス
01を返します。220 Henry St, New York, NY 10002, USA
200 Monroe St, New York, NY 10002, USA
420 E 12th St, New York, NY 10009, USA
198 Forsyth St, New York, NY 10002, USA
145 Stanton St, New York, NY 10002, USA
145 Stanton St, New York, NY 10002, USA
111 Columbia St, New York, NY 10002, USA
198 Forsyth St, New York, NY 10002, USA
525 E Houston St, New York, NY 10002, USA
225 E 23rd St, New York, NY 10010, USA
525 W 50th St, New York, NY 10019, USA
350 Grand St, New York, NY 10002, USA
しかし、私は再びデータセットを見ると、それだけですべての行で同じアドレスを繰り返します。 see here
最後にそれが動作した場合、どのように私は郵便番号や都市を持っている文字列ができ、スプリットでしょうか?これが私が試したことです。私はNominatimを使ってみましたが、DBNを認識しません。あなたのループのためにあなたが
satdata["zip_code"]= output
ので、すべての行で同じ値で出力output
"zip_code"
を上書きしているのすべての反復で
new_list = []
for var in satdata.zip_code:
new_list.append(var.rsplit(maxsplit = 1)[0].replace(" ","_"))
satdata.zip_code = new_list
145_Stanton_St,_New_York,_NY_10002,
はい!申し訳ありませんが、私はこれに新しいです。どうもありがとうございます。 – Linna