pandas 按多列排序 [英] pandas sort by multiple columns

查看:67
本文介绍了 pandas 按多列排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想按升序对C列中的值进行排序,并按"April","August","December"的顺序对B列中的值和当前示例中的所有剩余值(例如NaN)进行排序.谁能帮忙.

I want to sort the values in column C in ascending order and values in column B in order "April","August","December" and any remaining values e.g NaN in current example. Can anyone help.

之前

      A         B         C
0   354.7      April      4
1   278.8      NaN        4 
2   283.5      December   2
3  249.6       NaN        2
4    95.5      April      2
5    85.6      August     2
6    55.4      August     4
7   176.5      December   4
8   104.8      August     8
9   278.8      NaN        10
10   238.7     April      8
11  278.8      April      5
12    152      December   8

之后:

      A         B       C
0    95.5     April     2
1    85.6     August    2
2   283.5     December  2
3  249.6      NaN       2
4   354.7     April     4
5    55.4     August    4
6   176.5     December  4
7   278.8     NaN       4  
8   278.8     April     5
9   238.7     April     8
10   104.8    August    8
11    152     December  8
12  278.8      NaN      10

推荐答案

这是您需要的吗?

df.B=pd.Categorical(df.B,['December','April','August'])
df.sort_values(['C','B'])
Out[284]: 
        A         B   C
2   283.5  December   2
4    95.5     April   2
5    85.6    August   2
3   249.6       NaN   2
7   176.5  December   4
0   354.7     April   4
6    55.4    August   4
1   278.8       NaN   4
11  278.8     April   5
12  152.0  December   8
10  238.7     April   8
8   104.8    August   8
9   278.8       NaN  10

这篇关于 pandas 按多列排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆