给出此数据框:
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),以保留我得到的新顺序?
答案 0 :(得分:1)
使用reset_index
:
df.sort_values('2').reset_index(drop=True)
也(这将替换原始数据框)
df[:] = df.sort_values('2').values