我正在通过pdf进行解析,并找到位置(城市和国家/地区)的名称,然后查找这些位置的经度和纬度,然后将该信息保存到csv中,并使用该csv制作全局热图以查看位置城市位于pdf中。我遇到的问题是我的经度和纬度以“(lat,lon)”格式保存,将其保存在csv的单个列中。我试图摆脱逗号和括号,因此它将它们分成两个单独的列。这是我当前正在使用的代码:
doc = open("/home/hank/Work/plotting-named-entities-in-python/text.txt",encoding="utf8").read()
places = GeoText(doc) #Uncomment out if you want to do a text file
cities = list(places.cities)
geolocator = Nominatim(timeout=2)
lat_lon = []
for city in cities:
try:
location = geolocator.geocode(city)
if location:
#print(location.latitude, location.longitude)
lat_lon.append(location)
except GeocoderTimedOut as e:
print("Error: geocode failed on input %s with message %s"%
(city, e))
pd.DataFrame(lat_lon).to_csv("/home/hank/Work/file.csv", header=None,index=False)
正在解析文件的地方,然后查找经度和纬度,最后将所有这些数据保存为pdf。
答案 0 :(得分:0)
您可以从列表中删除一个pd.DataFrame:
lat = [i[0] for i in lat_lon]
lon = [i[1] for i in lat_lon]
data = {'lat': lat, 'lon': lon}
df_lat_lon = pd.DataFrame(data)
df_lat_lon.to_csv("/home/hank/Work/file.csv", header=None,index=False)
答案 1 :(得分:0)
location变量保存一个地理编码对象。 Documentation here
要从存储在对象中的字符串中获取经度和纬度,请使用:
lat = location.latitude
long = location.longitude