Python-如何从一列中排序pandas数据框

发布于 2021-02-02 23:16:20

我有一个像这样的数据框:

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)相对应的月份数。从那里,如何根据日历月的顺序对数据框进行排序?

关注者
0
被浏览
123
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    用于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']都是唯一的。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看