使用sort_values按最后一行对列进行排序时遇到麻烦

时间:2019-09-18 14:34:41

标签: python-3.x pandas dataframe

我在如何根据最后一行得到'KeyError:-1'的列排序时遇到一些问题

我尝试了df.sort_values(by=[-1], axis=1,na_position='last'),   df.sort_values(by=df[-1], axis=1,na_position='last')

 timestamp AKS  AGI  AA  ATI  ...        TK       TNP      USDP       ZTO
2019-09-10  NaN  NaN NaN  NaN  ...  0.063570  0.057432 -0.121778  0.098429
2019-09-11  NaN  NaN NaN  NaN  ...  0.083130  0.043919 -0.128889  0.104712
2019-09-12  NaN  NaN NaN  NaN  ...  0.080685  0.047297 -0.130667  0.135079
2019-09-13  NaN  NaN NaN  NaN  ...  0.090465  0.020270 -0.123556  0.112565
2019-09-16  NaN  NaN NaN  NaN  ...       NaN       NaN       NaN       NaN

一些代码

sorted_df = df.sort_values(by=[-1], axis=1,na_position='last')

预期结果是列按最后一行排序

1 个答案:

答案 0 :(得分:0)

好吧,如果您想知道最后一列是什么,可以使用

df.columns.tolist()[-1]

因此,如果您想按最后一列对df进行排序,则结果为

df.sort_values(by=df.columns.tolist()[-1], ascending = False) 

然后您可以na_position

na_position : {‘first’, ‘last’}, default ‘last’

first puts NaNs at the beginning, last puts NaNs at the end