Python如何将LatLng坐标拆分为独立的Lat、Lng两个数值
Python拆分经纬度数组字段实现方案
前置说明
默认你提到的LatLng字段存储的是顺序为*[纬度, 经度]*的数组,以下给出两种最常用的实现方式:
方案1:基于Pandas处理(适配结构化表格场景,推荐)
适合已经/需要将数据集存储为DataFrame格式的场景,拆分后可直接导出为csv、excel等结构化文件。
- 第一步:导入依赖,读取原始数据(以csv为例)
import pandas as pd import ast # 读取原始数据集 df = pd.read_csv("你的原始数据表路径.csv")
- 第二步:处理
LatLng字段
如果LatLng本身是列表格式:
# 直接拆分出两个新字段 df[['Lat', 'Lng']] = pd.DataFrame(df['LatLng'].tolist(), index=df.index)
如果LatLng是字符串格式(比如存储为"[40.773819, -73.969132]"):
# 先将字符串转为真实数组 df['LatLng'] = df['LatLng'].apply(ast.literal_eval) # 再拆分字段 df[['Lat', 'Lng']] = pd.DataFrame(df['LatLng'].tolist(), index=df.index)
- 第三步:导出处理后的数据
# 导出为csv文件,index=False表示不保留行索引 df.to_csv("拆分后经纬度数据表.csv", index=False)
方案2:原生Python实现(无第三方依赖)
适合小数据集、不想安装第三方库的场景:
# 示例原始数据集,可替换为你自己的数据源 raw_data = [ {"其他字段1": "xxx", "LatLng": [40.773819, -73.969132]}, {"其他字段1": "yyy", "LatLng": [39.9042, 116.4074]} ] processed_data = [] for item in raw_data: # 取出经纬度数组 lat, lng = item.pop("LatLng") # 合并原有字段和新的经纬度字段 processed_data.append({**item, "Lat": lat, "Lng": lng})
处理后的processed_data为结构化字典列表,可直接写入csv、数据库等存储介质。
注意:如果你的数据集
LatLng数组存储顺序是[经度, 纬度],拆分后需要手动交换Lat和Lng的赋值,避免坐标错位。
内容的提问来源于stack exchange,提问作者tat
相关产品推荐
相关产品推荐

