簡體   English   中英

python:在csv文件中排序坐標

[英]python: sort coordinates in csv file

我在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坐標。

我嘗試了簡單的下降第1列和上升第2列,但沒有得到所需的順序。

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

你的問題是你假設列表是1索引的,當它們不是:

[55.000000, 14.000000, 34.727]
#0          1          2

此外,您按錯誤的順序排序,您需要按經度排序然后緯度:

coordinates.sort(key=lambda x: x[1])                              
coordinates.sort(key=lambda x: x[0], reverse=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM