0

我对 Python 很陌生,所以对我缺乏理解深表歉意。

我需要读取 4 列 CSV 文件的 2 列(纬度和经度)。 下面的例子。

ShopName Misc 纬度经度 XXX 3 999999 999999

然后,我必须使用我检查过的 pyproj 转换 scrypt 更改纬度和经度。然后我需要将转换后的纬度和经度数据保存到新的 csv 中,以便列格式与现有 csv 相同。 下面的例子。

ShopName Misc 纬度经度 XXX 3 49.12124 -2.32131

我有点迷路了,但这就是我要去的地方。先感谢您

import csv
from pyproj import Transformer

#2.2 Define function
def transformer = Transformer.from_crs("epsg:12345", "epsg:9999")
    result = transformer.transform(old_longitude, old_latitude)
    return new_longitude, new latitude

#2.3 Set destination file to variable
with open('new.csv' ,'w') as csv_new2:

#2.4 Instruct write method to new file    
    fileWriter2 = csv.writer(csv_new2)
    
#2.5 Set existing file to variable
    with open('old.csv','r') as csv_old2:

#2.6 Instruct read method to new file
        fileReader2 = csv.reader(csv_old2)

        for row in fileReader2:
4

1 回答 1

0

这里有一些选项供您选择。

熊猫 + pyproj:

地理熊猫:

from pyproj import Transformer
import pandas

pdf = pandas.read_csv("old.csv")
transformer = Transformer.from_crs("epsg:12345", "epsg:9999", always_xy=True)
xx, yy = trans.transform(pdf["longitude"].values, pdf["latitude"].values)
pdf = pdf.assign(longitude=xx, latitude=yy)
pdf.to_csv("new.csv")
于 2020-11-06T00:46:57.780 回答