按第一列Pandas排序数据帧

Car*_*men 4 sorting dataframe pandas

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

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
Run Code Online (Sandbox Code Playgroud)

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

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

jez*_*ael 10

我认为你可以选择第一列tst.columns[0],更好的是使用sort_values因为sort返回警告:

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

sort = tst.sort_values(tst.columns[0], ascending = False)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)