Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在保持非逻辑顺序的同时对值进行排序_Python_Pandas - Fatal编程技术网

Python 在保持非逻辑顺序的同时对值进行排序

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

我有一个表,目前是根据网站编号排序。这些站点编号没有任何逻辑顺序,但我希望保留站点编号的顺序,同时按不同字段排序。这是数据的一个示例:

这就是我想要它的样子:

在实际数据集中,每个站点的行数没有变化(即站点50有23行,大小102有88行)。是否有一种简单的方法来维护SiteNo的顺序并按距离排序?我已经想到了手动实现这一点的方法,但我相信熊猫有一个功能可以做到这一点

谢谢。

试试看

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没有按逻辑顺序排序,但维护其顺序很重要。