You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将函数计算的经纬度结果保存为新CSV文件?

解决经纬度结果保存到CSV的问题

修改思路

  1. 让经纬度函数返回实际值(而非仅打印),这样才能收集数据
  2. 关联存储地址与对应的经纬度数据
  3. 使用pandas的to_csv方法将数据保存为新文件

推荐实现代码(简洁的pandas风格)

import requests
import urllib.parse
import pandas as pd

def lat_long(add):
    url = 'https://nominatim.openstreetmap.org/search/'+urllib.parse.quote(add)+'?format=json'
    response = requests.get(url).json()
    # 处理地址无法解析的情况,避免报错
    if response:
        lat = response[0]["lat"]
        lon = response[0]["lon"]
        print(lat, lon)
        return lat, lon
    return None, None

# 读取原始地址CSV
df = pd.read_csv('C:\\Users\\Umer Abbas\\Desktop\\lat_long.csv')

# 仅处理前5行(和原代码逻辑一致,如需处理全部可删除[:5])
processed_df = df[:5].copy()
# 为每行地址生成经纬度列
processed_df[['Latitude', 'Longitude']] = processed_df['Address'].apply(lambda x: pd.Series(lat_long(x)))

# 保存结果到新CSV,index=False避免写入索引列
processed_df.to_csv('C:\\Users\\Umer Abbas\\Desktop\\lat_long_result.csv', index=False)

保持原循环逻辑的实现

如果你想保留原代码的手动循环方式,可以用下面的写法:

import requests
import urllib.parse
import pandas as pd

def lat_long(add):
    url = 'https://nominatim.openstreetmap.org/search/'+urllib.parse.quote(add)+'?format=json'
    response = requests.get(url).json()
    if response:
        return response[0]["lat"], response[0]["lon"]
    return None, None

df = pd.read_csv('C:\\Users\\Umer Abbas\\Desktop\\lat_long.csv')
# 初始化列表存储结果
result_list = []
print("Latitude", "Longitude")

for i in range(0,5):
    add = df._get_value(i, 'Address')
    lat, lon = lat_long(add)
    print(lat, lon)
    # 将地址和经纬度存入字典,再添加到列表
    result_list.append({'Address': add, 'Latitude': lat, 'Longitude': lon})

# 转换为DataFrame并保存
result_df = pd.DataFrame(result_list)
result_df.to_csv('C:\\Users\\Umer Abbas\\Desktop\\lat_long_result.csv', index=False)

关键修改点

  • 调整lat_long函数,新增返回值逻辑,同时增加异常处理避免地址解析失败崩溃
  • 新增数据收集逻辑,将地址和经纬度关联存储
  • 使用pd.DataFrame.to_csv()完成文件保存,index=False确保输出CSV无多余索引列

内容的提问来源于stack exchange,提问作者umar abbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:05:13