按第一列Pandas排序数据帧

时间:2016-11-07 10:16:40

标签: sorting pandas dataframe

我有一个包含一列的数据框,我想对其进行排序。 键入以下代码为我提供了一个已排序的数据框:

sort = tst.sort(["Mean"], ascending = False)

                Mean
SIMULATION          
Sim_758     1.351917
Sim_215     1.072942
Sim_830     0.921284
Sim_295     0.870272
Sim_213     0.845990
Sim_440     0.822394

这将是函数的一部分,该函数将应用于其他数据帧。出于这个原因,我需要对数据帧进行排序,而不提及列名称“mean”。

有没有办法按列的值对数据框进行排序,只显示列的位置?

1 个答案:

答案 0 :(得分:7)

我认为您可以按tst.columns[0]选择第一列,最好使用sort_values,因为sort会返回警告:

  

FutureWarning:sort(columns = ....)已弃用,请使用sort_values(by = .....)

sort = tst.sort_values(tst.columns[0], ascending = False)
print (tst)
                Mean
SIMULATION          
Sim_213     0.845990
Sim_758     1.351917
Sim_830     0.921284
Sim_295     0.870272
Sim_215     1.072942
Sim_830     0.921284
Sim_295     0.870272
Sim_440     0.822394

print (tst.columns[0])
Mean

sort = tst.sort_values(tst.columns[0], ascending = False)
print (sort)
                Mean
SIMULATION          
Sim_758     1.351917
Sim_215     1.072942
Sim_830     0.921284
Sim_830     0.921284
Sim_295     0.870272
Sim_295     0.870272
Sim_213     0.845990
Sim_440     0.822394