基于Python中另一列中的值写入现有列
我有一个CSV文件,其中包含企业条目,其中有一列是它们所基于的城市,还有两列是不准确的纬度坐标和需要替换的纵向坐标基于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
'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谢谢我补充了到目前为止我所得到的。