寻求订购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
答案 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()]