熊猫根据外部序列对数据框进行排序

时间:2020-10-01 21:04:53

标签: python pandas dataframe

假设我具有以下数据框:

df = pd.DataFrame({'id': [1,2,3,4,5,6,7,8,9,10], 'name': ['a', 'nkjnkj', 'oijhoiuh', 'on', 'lnjjn', 'kmlkm', 'molijoijoij', 'kljkljhlh', 'ghkghgj', 'ihkjhkj']})

我想按名称的长度对其进行排序,我可以这样做:

df['len'] = df['name'].str.len()
df.sort_values('len')

 id         name  len
  1            a    1
  4           on    2
  5        lnjjn    5
  6        kmlkm    5
  2       nkjnkj    6
  9      ghkghgj    7
 10      ihkjhkj    7
  3     oijhoiuh    8
  8    kljkljhlh    9
  7  molijoijoij   11

但是可以单线吗?像这样:

df.sort_by(df['name'].str.len()) #doesn't exist

换句话说,我可以根据不在数据框中的序列对数据框进行排序吗?

3 个答案:

答案 0 :(得分:2)

尝试一下:

df.loc[df['name'].str.len().argsort()]

答案 1 :(得分:2)

只需传递一个函数,即可将要排序的值返回到map()参数

map(~lm(value ~ Time * Group, data = .) %>% summary())

答案 2 :(得分:1)

修正您的代码

df.assign(len = df['name'].str.len()).sort_values('len').drop('len',1)
   id         name
0   1            a
3   4           on
4   5        lnjjn
5   6        kmlkm
1   2       nkjnkj
8   9      ghkghgj
9  10      ihkjhkj
2   3     oijhoiuh
7   8    kljkljhlh
6   7  molijoijoij
相关问题