我在 csv 文件中有一组三维坐标,例如: [前两列分别是十进制的纬度和经度,第三列是海拔]
49.000000,14.000000,47.206
55.000000,14.000000,34.727
49.000000,24.366667,31.979
55.000000,24.366667,24.744
我想按以下顺序对坐标进行排序:从西北角开始,然后向东向南,例如:
55.000000,14.000000,34.727
55.000000,24.366667,24.744
49.000000,14.000000,47.206
49.000000,24.366667,31.979
必须保持高程,并将其粘贴到给定的 2D 坐标。
我尝试了简单的降序第一列和升序第二列,但没有得到所需的顺序。
import csv
coordinates = [];
file_in = csv.reader(open('NewFile.csv', 'rb'), delimiter=',', quotechar='|');
file_out = '11dataout.txt'
fout=open(file_out,"w")
for row in file_in:
coordinates.append(row)
coordinates.sort(key=lambda x: x[1], reverse=True)
coordinates.sort(key=lambda x: x[2])
fout.write(str(coordinates))
fout.write('\n')
提前致谢。
最佳答案
您也可以一次性进行排序:
coordinates.sort(key = lambda x: (-x[0], x[1]))
关于python:对csv文件中的坐标进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193823/