首页 > 解决方案 > 如何根据列组合对行进行排序 - python

问题描述

有没有办法通过不同列的组合对数据框进行排序?如果特定列在行之间匹配,它们将聚集在一起?下面的一个例子:非常感谢任何帮助!

原始数据框

转换后的数据框

标签: pythondatabasedata-science

解决方案


对 pandas 数据帧进行排序的一种方法是使用 .sort_values()。

下面的代码复制了您的示例数据框:

df= pd.DataFrame({'v1': [1, 3, 2, 1, 4, 3],
                  'v2': [2, 2, 4, 2, 3, 2],
                  'v3': [3, 3, 2, 3, 2, 3],
                  'v4': [4, 5, 1, 4, 2, 5]})

使用下面的代码,可以按列 v1 和 v2 对数据框进行排序。在这种情况下,v2 仅用于打破平局。

df.sort_values(by=['v1', 'v2'], ascending=True) 

这里的“by”参数不限于任何数量的变量,因此可以扩展列表以按所需顺序包含更多变量。


推荐阅读