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

  统计/机器学习 Python    浏览次数:423        分享
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 DataFrame保存成本地txt并删去列名   1回答

pandas.DataFrame的index重新排列(从0开始)   2回答

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

pandas df.head()报错AttributeError: 'NoneType' object has no attribute 'head'   1回答

pd.dataframe怎么同时对两个key排序?   1回答

pandas读取文件夹中所有的csv文件   1回答

如何清空pandas dataframe里的全部数据但是保留列名?   3回答

怎么对pandas dataframe做转置?   1回答

去掉pandas DataFrame的index的名字   2回答

pandas中某列中数字后边有 亿/万这种单位 如何处理   1回答

怎么改变pandas dataframe里column的顺序?   1回答

怎么添加pandas的dataframe到已有的csv文件,并且不覆盖原内容   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!