我有一个像这样的数据框:
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进行排序:
sort_values
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']都是唯一的。
df.sort_values(['2', '0'])
0
df['2']