Python 在保持非逻辑顺序的同时对值进行排序
我有一个表,目前是根据网站编号排序。这些站点编号没有任何逻辑顺序,但我希望保留站点编号的顺序,同时按不同字段排序。这是数据的一个示例: 这就是我想要它的样子: 在实际数据集中,每个站点的行数没有变化(即站点50有23行,大小102有88行)。是否有一种简单的方法来维护SiteNo的顺序并按距离排序?我已经想到了手动实现这一点的方法,但我相信熊猫有一个功能可以做到这一点 谢谢。试试看Python 在保持非逻辑顺序的同时对值进行排序,python,pandas,Python,Pandas,我有一个表,目前是根据网站编号排序。这些站点编号没有任何逻辑顺序,但我希望保留站点编号的顺序,同时按不同字段排序。这是数据的一个示例: 这就是我想要它的样子: 在实际数据集中,每个站点的行数没有变化(即站点50有23行,大小102有88行)。是否有一种简单的方法来维护SiteNo的顺序并按距离排序?我已经想到了手动实现这一点的方法,但我相信熊猫有一个功能可以做到这一点 谢谢。试试看 df = df.set_index(['siteNo']).sort_values(['Distance'])
df = df.set_index(['siteNo']).sort_values(['Distance']).reset_index()
更新
df.update(df.groupby('siteNo').transform(lambda x : x.sort_values()))
这样做的结果是按索引值对数据帧进行排序,因此索引的顺序变为1、2、5,而不是1、5、2。siteNo没有按逻辑顺序排序,但维护其顺序很重要。