根据另一个列的值在Python中写入现有列
我有一个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. 把修改后的内容写入一个新文件(覆盖掉原来的文件)
你也可以逐行读取文件,修改后再写入到新文件里。完成后,关闭两个文件,删除原来的文件,然后把新文件重命名。
希望这些能帮到你,让你明白这个过程。
祝好!!