Python-如何从一列中排序pandas数据框
我有一个像这样的数据框:
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
如你所见,月份不是按日历顺序排列的。因此,我创建了第二列以获取与每月(1-12)相对应的月份数。从那里,如何根据日历月的顺序对数据框进行排序?
-
用于
sort_values
按特定列的值对df进行排序:In [18]: df.sort_values('2') Out[18]: 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
如果要按两列排序
sort_values
,请将列标签列表传递给,并按排序优先级对列标签进行排序。如果使用df.sort_values(['2', '0'])
,则结果将按列2然后按列排序0
。当然,对于这个示例,这实际上没有任何意义,因为其中的每个值df['2']
都是唯一的。