本文介绍了按字符串长度对数据框进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想按名称长度排序. sort_values
似乎没有key
参数,所以我不确定如何完成此操作.这是一个测试df:
I want to sort by name length. There doesn't appear to be a key
parameter for sort_values
so I'm not sure how to accomplish this. Here is a test df:
import pandas as pd
df = pd.DataFrame({'name': ['Steve', 'Al', 'Markus', 'Greg'], 'score': [2, 4, 2, 3]})
推荐答案
您可以使用Series的index
的rel ="noreferrer"> reindex
.str.len.html"rel =" noreferrer> len
和 sort_values
:
You can use reindex
of index
of Series
created by len
with sort_values
:
print (df.name.str.len())
0 5
1 2
2 6
3 4
Name: name, dtype: int64
print (df.name.str.len().sort_values())
1 2
3 4
0 5
2 6
Name: name, dtype: int64
s = df.name.str.len().sort_values().index
print (s)
Int64Index([1, 3, 0, 2], dtype='int64')
print (df.reindex(s))
name score
1 Al 4
3 Greg 3
0 Steve 2
2 Markus 2
df1 = df.reindex(s)
df1 = df1.reset_index(drop=True)
print (df1)
name score
0 Al 4
1 Greg 3
2 Steve 2
3 Markus 2
这篇关于按字符串长度对数据框进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!