基于Python中另一列中的值写入现有列

基于Python中另一列中的值写入现有列,python,csv,python-3.x,geocoding,Python,Csv,Python 3.x,Geocoding,我有一个CSV文件,其中包含企业条目,其中有一列是它们所基于的城市,还有两列是不准确的纬度坐标和需要替换的纵向坐标 'Company', 'Location', 'Lat', 'Lon' 'Xconic', 'Austin', 11.263406, -85.8639766 'InfoTech', 'London', 12.078980, -86.2094965 'WaterForm', 'Toronto', 12.865416, -85.20

我有一个CSV文件,其中包含企业条目,其中有一列是它们所基于的城市,还有两列是不准确的纬度坐标和需要替换的纵向坐标

'Company',   'Location',   'Lat',      'Lon'
'Xconic',    'Austin',      11.263406, -85.8639766
'InfoTech',  'London',      12.078980, -86.2094965
'WaterForm', 'Toronto',     12.865416, -85.2072295
我需要制作一个脚本,它将读取“位置”列,获取每个城市名称字符串,并在中运行它,以找到它的纬度和长坐标。然后,脚本必须用geocoder函数生成的条目覆盖该行相应的“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/long坐标,但我完全不同意将这些坐标(Latx和Lngx)写入“lat”和“Lon”列。不确定是因为我需要将这些列重写为全新的CSV还是什么


我是一个非常新的python,所以非常感谢您的帮助

不能真正替换现有文件中的值。相反,您可以做的是:

1。读取现有文件

2.更改内存中的文件(在您的情况下执行操作修改值)

3.写出新文件(覆盖现有文件)

您还可以逐行读取文件,并在操作后将其写入新文件。完成后,关闭两个文件,删除原始文件并重命名新文件

希望这有帮助&你明白了


干杯

太好了!您已经定义了您试图解决的问题。现在,让我们看看你尝试了什么,我们将告诉你如何改进it@inspectorG4dget谢谢我补充了到目前为止我所得到的。