Python 熊猫排序\u值方法不排序熊猫数据帧

Python 熊猫排序\u值方法不排序熊猫数据帧,python,pandas,Python,Pandas,我正在尝试对数据帧进行排序,但是sort\u values方法似乎不起作用。 我已经查看了关于同一问题的其他stackoverflow帖子,但它们似乎对我没有帮助 Code.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]

我正在尝试对数据帧进行排序,但是
sort\u values
方法似乎不起作用。 我已经查看了关于同一问题的其他stackoverflow帖子,但它们似乎对我没有帮助

Code.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\u df
new\u var\u 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
这是我在排序后期望的输出


分配,则您不需要
就位

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

分配,则不需要
就地

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

这个问题是由我这边的一个打字错误引起的。 我重置了错误数据帧的索引(
var\u df
),而不是
new\u var\u df

我通过改变这个解决了这个问题
new\u var\u df=var\u df.reset\u index(drop=True)

new\u var\u df=new\u var\u df.reset\u index(drop=True)
谢谢@Yashar

这个问题是由我这边的一个打字错误引起的。 我重置了错误数据帧的索引(
var\u df
),而不是
new\u var\u df

我通过改变这个解决了这个问题
new\u var\u df=var\u df.reset\u index(drop=True)


new\u var\u df=new\u var\u df.reset\u index(drop=True)

@David.B看看你原来的df,它已经是order by=['剩余值','度'],升序=[真,假]我不知道它是否已经这样做了。请核对问题。我添加了我实际查看的输出for@David.B检查您的预期输出,并与原始df进行比较,仍然是same@David.B看看你原来的df,它已经是orderby=['剩余值','度'],升序=[真,假]我不知道它是否已经这样做了。请核对问题。我添加了我实际查看的输出for@David.B检查您的预期输出并与原始df进行比较,sameIm仍然不确定它是打字错误还是与您正在使用的代码相同,但您正在通过排序var_df创建新的var_df,然后通过重置var_df上的索引来覆盖新的var_df,因此您将获得相同的数据帧。是不是应该是new\u var\u df=new\u var\u df.reset\u index(drop=True)?@Yashar,非常感谢。这就是问题所在。我重置了错误数据框的索引(var_df)我不确定这是打字错误还是与您使用的代码相同,但是您通过排序var_df创建了新的var_df,然后通过重置var_df上的索引覆盖了新的var_df,所以您得到的是相同的数据框。是不是应该是new\u var\u df=new\u var\u df.reset\u index(drop=True)?@Yashar,非常感谢。这就是问题所在。我正在重置错误数据帧的索引(var_df)