怎么对pandas dataframe按照一列的字符串的长度来排序?

  统计/机器学习 Python    浏览次数:5197        分享
0

我有一个很宽的pandas dataframe,其中有一列名称为description,这一列是文本。我想按照这一列中文本的长度从长到短对dataframe中的每一行重新排序。

我试了直接用df.sort_values('description', ascending=False),得不到以上效果。那应该怎么做?

谢谢各位!

 

双鸭熊仔   2020-05-27 23:11



   2个回答 
3


new_df = df.reindex(df['description'].str.len().sort_values(ascending=False).index)


SofaSofa数据科学社区DS面试题库 DS面经

abuu   2020-05-29 20:58

1

我想到的办法就是新插入一列len_d用来记录description的长度,然后对len_d这列排序,排完之后删除

df['len_d'] = df['description'].apply(len)
df = df.sort_values('len_d', ascending=False).drop('len_d', axis=1)


SofaSofa数据科学社区DS面试题库 DS面经

黑泽先生   2020-05-28 09:05



  相关讨论

pandas按照两列sort_values,一个升序一个降序

pandas数据合并 merge 相同的列能不能合并

pandas同时返回一个dataframe的前几行(head)和后几行(tail)

pandas怎么按照groupby串联字符串?

使用pandas.to_datetime转化文本到时间戳时怎么只保留日期?

如何重命名pandas的dataframe的列名

怎么提取pandas dataframe中某一列每个字符串的前n个字符?

怎么利用pandas新建一个只有列名的空的dataframe?

pandas操作出现ValueError: The truth value of a Series is ambiguous.

pandas报错ValueError: Cannot convert non-finite values (NA or inf) to integer

  随便看看

roc auc小于0.5是什么情况?

前馈神经网络如何选择隐藏层的数量

如何检验两个样本是同分布的?

【站务】我们回来了

怎么把pandas dataframe中一列英文文本全部转成小写?