读取 CSV,使用 pyproj 转换更改 2 列并保存到新的 CSV

Read CSV, Change 2 Columns using pyproj Transform and save to new CSV

我是 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:

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

pandas + pyproj:

地理位置pandas:

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")