I'm trying geopandas to manipulate some points data. My final GeoDataFrame is represented there: In order to use an other Python module which calculates the shortest road between two points with OSM data, I must sort my points like a tour. If not, the next Python module which calculates shortest road, but not necessarily between the nearest points. And the main problem is the constraint of a tour. If my points were only in a line, a basic sorting function on latitudes and longitudes of each point should be enough, like: df1 = pd.read_csv("file.csv", sep = ",") df1 = df1.sort_values(['Latitude','Longitude'], ascending = [1,1]) # (I'm starting with pandas df before GeoDataFrame conversion) If we start from the "upper" point of previous picture following this sorting, the second point of DataFrame will be the nearest of it, etc... Until the fifth point, which is on the right of the picture (so not the nearest anymore)... So my question is: does someone know how achieve this special kind of sorting, or must I change my index manually? Continue reading...