我有一個看起來像這樣但更長的 csv:
| ID | 地址 |
|---|---|
| 32 | 54298 Boca Chica Blvd Brownsville, TX |
| 31 | 華盛頓街 6640 號,揚特維爾,CA 94599 |
我試圖遍歷 csv,使用 geopy 獲取每個地址的緯度和經度,然后將它們插入到第 3 和第 4 列中,如下所示:
| ID | 地址 | 緯度 | 經度 |
|---|---|---|---|
| 32 | 54298 Boca Chica Blvd Brownsville, TX | 34.5165131 | 90.1656516 |
| 31 | 華盛頓街 6640 號,揚特維爾,CA 94599 | 26.1231 | 51.516125 |
它是在同一個舊的 csv 中(這就是我正在嘗試的),還是在一個新的 csv 中并不重要。我讀過的前幾篇文章要么專注于附加整行而不是列,要么他們只是用手動輸入/硬編碼到 python 腳本中的資料填充新列。
到目前為止,我能夠回圈并獲得緯度和經度。我遇到的問題主要是在寫作部分。這是我所擁有的。
import geopy
import pandas as pd
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="sample app")
df = pd.read_csv(r"C:\Users\Desktop\LatLongTest.csv")
for row in df.itertuples():
try:
data = geolocator.geocode(row[7])
print(data.point.latitude)
except AttributeError:
print('error')
任何幫助將不勝感激!我當時只有一點 Java 經驗。Python 的檔案和已發布的示例對我來說不像 Java 那樣直觀,因此入門有點挑戰。
uj5u.com熱心網友回復:
添加列然后保存df資料框所需的一切。另請參閱在 Python pandas 中向現有 DataFrame 添加新列
你可以嘗試這樣的事情:
import geopy
import pandas as pd
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="sample app")
df = pd.read_csv(r"C:\Users\Desktop\LatLongTest.csv")
# add new columns
df['Longitude'] = 0
df['Latitude'] = 0
# process all rows
for row in df.itertuples():
try:
data = geolocator.geocode(row[7])
df.at[row.Index, 'Longitude'] = data.point.longitude
df.at[row.Index, 'Latitude'] = data.point.latitude
except AttributeError:
print('error')
# write to output
df.to_csv(r"C:\Users\Desktop\LatLongTest_2.csv", sep=";", index=False)
uj5u.com熱心網友回復:
使用我將展示的這種方法,您需要創建兩個串列,一個帶有緯度,另一個帶有經度,然后作為列附加到您的 DataFrame 中。讓我提醒您,它們的行數必須相同,否則會出錯。
import pandas as pd
df = pd.read_csv(r"C:\Users\Desktop\LatLongTest.csv")
add_to_df = {'Latitude': LatitudeList, 'Longitude': LongitudeList}
df = df.append(pd.DataFrame(add_to_df))
df
也可以這樣做,為每一行添加一個值:
import pandas as pd
df = pd.read_csv(r"C:\Users\Desktop\LatLongTest.csv")
df.loc[df.Adress == '54298 Boca Chica Blvd Brownsville, TX', "Latitude"] = Latitude
df.loc[df.Adress == '54298 Boca Chica Blvd Brownsville, TX', "Longitude"] = Longitude
df
您可以在此鏈接中查看更多資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/359254.html
