熊猫:Datarame中的订单行

时间:2016-12-12 03:13:20

标签: python pandas

寻求订购sales列的正确方法,以便所代表的范围从最小到最大。

我一直在使用pandas.df.sort_values(by='sales'),但输出不是连续的。

提前感谢您的帮助!

当前DF:DF1

     sales           team    
0    950 to 1000     J
1    10 to 20        K
2    4000 to 5000    L
3    60 to 100       M
4    0 to 9          N

期望的DF:DF2

     sales           team    
0    0 to 9          N
1    10 to 20        K   
2    60 to 100       M      
3    950 to 1000     J
4    4000 to 5000    L

1 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情(从销售列中提取第一个数字并按其排序):

df.loc[df.sales.str.split(" ").str[0].astype(int).argsort()]

#   sales        team
#4  0 to 9          N
#1  10 to 20        K
#3  60 to 100       M
#0  950 to 1000     J
#2  4000 to 5000    L

str.extract()的其他选项:

df.loc[df.sales.str.extract("^(\d+)").astype(int).argsort()]