首页 > 解决方案 > Pandas sort_values 方法不对 Pandas DataFrame 进行排序

问题描述

我正在尝试对数据框进行排序,但该sort_values方法似乎不起作用。我已经检查了有关同一问题的其他 stackoverflow 帖子,但它们似乎对我没有帮助。

代码.py

    var_df = pd.DataFrame(columns=['Variable','Remaining values','Degrees'])
    var_df.loc[0] = ['V1', 1, 2]
    var_df.loc[1] = ['V2', 2, 3]
    var_df.loc[2] = ['V3', 2, 1]
    var_df.loc[3] = ['V4', 4, 5]
    var_df.loc[4] = ['V5', 5, 4]
    var_df.loc[5] = ['V6', 5, 7]
    var_df.loc[6] = ['V7', 6, 1]
    
    print(var_df)
    print('\n------------\n')
    
    new_var_df = var_df.sort_values(by=['Remaining values', 'Degrees'], inplace=True, ascending=[True, False])
    new_var_df = var_df.reset_index(drop=True)
    print(new_var_df)

当我打印出var_df, 和new_var_df时,它们具有相同的输出:

   Variable Remaining values Degrees
0       V1                1       2
1       V2                2       3
2       V3                2       1
3       V4                4       5
4       V6                5       7
5       V5                5       4
6       V7                6       1

这是我在排序后期望的输出

排序后的预期输出

标签: pythonpandas

解决方案


分配然后你不需要inplace

new_var_df = var_df.sort_values(by=['Remaining values', 'Degrees'], ascending=[True, False])

推荐阅读