按列重新分配索引对数据框进行排序

时间:2020-11-03 19:29:13

标签: python pandas dataframe

给出此数据框:

print(df)

        0          1     2
0   354.7      April   4.0
1    55.4     August   8.0
2   176.5   December  12.0
3    95.5   February   2.0
4    85.6    January   1.0
5     152       July   7.0
6   238.7       June   6.0
7   104.8      March   3.0
8   283.5        May   5.0
9   278.8   November  11.0
10  249.6    October  10.0
11  212.7  September   9.0

如果我使用df.sort_values('2')按第2列进行排序,则会得到:

        0          1     2
4    85.6    January   1.0
3    95.5   February   2.0
7   104.8      March   3.0
0   354.7      April   4.0
8   283.5        May   5.0
6   238.7       June   6.0
5   152.0       July   7.0
1    55.4     August   8.0
11  212.7  September   9.0
10  249.6    October  10.0
9   278.8   November  11.0
2   176.5   December  12.0

是否存在一种聪明的方法来重新定义索引列(从0到11),以保留我得到的新顺序?

1 个答案:

答案 0 :(得分:1)

使用reset_index

df.sort_values('2').reset_index(drop=True)

也(这将替换原始数据框)

df[:] = df.sort_values('2').values
相关问题