根据另一个列的值在Python中写入现有列

0 投票
1 回答
556 浏览
提问于 2025-05-10 23:34

我有一个CSV文件,里面记录了一些商家的信息,其中有一列是它们所在的城市,还有两列是经纬度坐标,但这些坐标不准确,需要替换掉。

'Company',   'Location',   'Lat',      'Lon'
'Xconic',    'Austin',      11.263406, -85.8639766
'InfoTech',  'London',      12.078980, -86.2094965
'WaterForm', 'Toronto',     12.865416, -85.2072295

我需要写一个脚本,去读取“位置”这一列,拿到每个城市的名字,然后通过谷歌地理编码器的功能来找到这个城市的准确经纬度。接着,脚本要把找到的经纬度覆盖到对应行的“Lat”和“Lon”这两列里。

我最开始尝试把CSV文件转换成一个数据框,这样就可以直接遍历位置这一类,使用了以下代码:

#Create dataframe from CSV file
import pandas as pd
file= "filein.csv"
data = pd.read_csv(file)

x = 0

#Iterate over location names
import geocoder
import csv
for item in data.Location:
    #produce lat & long coordinates
    g = geocoder.google(item)

    Latx = str(data.Lat[x]) 
    Latx = g.lat

    Lngx = str(data.Lon[x])
    Lngx = g.lng

虽然这段代码能为每个条目生成经纬度,但我一直不知道怎么把这些坐标(Lat和Lon)写回到“Lat”和“Lon”这两列里。不确定是不是因为我需要把这些列写入一个全新的CSV文件,还是其他原因。

我对Python还很陌生,所以任何帮助都非常感谢!

相关文章:

  • 暂无相关问题
暂无标签

1 个回答

0

你不能直接在一个已经存在的文件里替换值。相反,你可以这样做:

1. 先读取这个文件

2. 在内存中修改文件内容(也就是在你的情况下,改变一些值)

3. 把修改后的内容写入一个新文件(覆盖掉原来的文件)

你也可以逐行读取文件,修改后再写入到新文件里。完成后,关闭两个文件,删除原来的文件,然后把新文件重命名。

希望这些能帮到你,让你明白这个过程。

祝好!!

撰写回答