我正在使用 GeoPandas Dataframe,必须按字母顺序对 Dataframe 进行排序。
这是原始数据帧:
SHAPESTA区域 | SHAPESTLength | 几何 | 名字 | |
---|---|---|---|---|
0 | 1.705685e+06 | 24841.426669 | MULTIPOLYGON (((-43.10567 -22.74888, -43.10568... | 帕克塔 |
1 | 4.056403e+06 | 18303.595717 | MULTIPOLYGON (((-43.17170 -22.77661, -43.17170... | Freguesia (Ilha) |
2 | 9.780465e+05 | 7758.781282 | MULTIPOLYGON (((-43.18915 -22.78318, -43.18915... | 银行 |
3 | 1.895742e+07 | 21510.059220 | MULTIPOLYGON (((-43.22804 -22.78374, -43.22811... | Galeão |
4 | 1.672546e+06 | 8246.109606 | 多边形 ((-43.18039 -22.79940, -43.18022 -22.7... | Tauá |
我想使用 names
列作为参考对 DataFrame 进行排序。由于特殊字符(例如 á、ã),我无法使用 gdf.sort_values('names', ascending=True)
,因为某些行未正确排序。
然后我遇到了这个功能,它解决了我的问题:
gdf = gdf.iloc[gdf['names'].str.normalize('NFKD').argsort()]
我的数据框现在如下所示:
SHAPESTA区域 | SHAPESTLength | 几何 | 名字 | |
---|---|---|---|---|
77 | 6.163327e+05 | 4930.770118 | 多边形 ((-43.29425 -22.89034, -43.29536 -22.8... | Abolição |
21 | 1.605524e+06 | 6408.772937 | 多边形 ((-43.33724 -22.82594, -43.33705 -22.8... | 螨虫 |
125 | 3.149568e+07 | 43744.411247 | 多边形 ((-43.22040 -22.93213, -43.22116 -22.9... | 阿尔托达博阿维斯塔 |
20 | 4.345727e+06 | 11471.418826 | 多边形 ((-43.37979 -22.82539, -43.38194 -22.8... | 安琪塔 |
119 | 2.261300e+06 | 9938.098921 | 多边形 ((-43.24866 -22.91959, -43.24879 -22.9... | 安达拉伊 |
但索引现在被列为 77, 21, 125, 20, 119...
而不是 1, 2, 3, 4, 5...
有办法修复索引吗?
谢谢!