我有一个包含多个列(街道名称,城镇,坐标)的pandas数据框,最后一列设置为空字符串,用于表示某个位置的坐标(lat,lng)。
我有一种方法,其中来自其余列的值用作参数,以返回要插入坐标列的值。由于我有超过十万行并希望尽快完成,我使用进程池同时在多行上执行此操作。
我使用' to_records()' Pandas将每一行转换为一个对象的方法,将该对象传递给一个方法,该方法设置该对象的坐标属性,然后将其返回。
rows = coordinate_df.to_records()
pool = multiprocessing.Pool(processes=50)
rows_with_coord = pool.map(geocode_worker, rows)
我的worker方法是这样的,将地址列传递给一个方法,该方法返回一个包含lat和long位置的json对象:
def geocode_worker(row):
json_results = coordinates_method(row[3])
coordinates = 'lat: '+str(json_results.json['lat'])+', lng: '+str(json_results.json['lng'])
row[7] = str(coordinates)
return row
我的问题是运行它,因为我得到了这个错误:
Exception Value: could not convert string to float: 'lat: 37.802408, lng: -121.221302'
我的目的不是将它转换为浮点数,我想将它作为定义格式的字符串。我错过了一些明显的东西吗?
修改
数据帧本身的dtypes
[127223 rows x 2 columns]
business_type object
coordinates object
full_address object
website object
status object
name object
view_count float64
dtype: object