首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在dataframe python的每一行中按字母顺序排序单词。

在dataframe python的每一行中按字母顺序排序单词。
EN

Stack Overflow用户
提问于 2018-07-21 04:27:18
回答 1查看 2.7K关注 0票数 3

我在dataframe中有一个包含字符串值的列,如下所示:

代码语言:javascript
复制
sortdf=pd.DataFrame(data= {'col1':["hello are you","what happenend","hello you there","issue is in our program","whatt is your name"]})

我想按字母顺序对元素中的每个单词进行排序。

所需输出:

代码语言:javascript
复制
    col1
0    are hello you
1   happenend what 
2   hello there you 
3    is in issue  our program
4   is name whatt your

我尝试使用以下代码来完成此操作:

代码语言:javascript
复制
sortdf['col1']. sort()

但是这个代码不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-21 04:29:27

pd.Series.apply与匿名lambda函数一起使用:

代码语言:javascript
复制
sortdf['col1'] = sortdf['col1'].apply(lambda x: ' '.join(sorted(x.split())))

pd.Series.sort是不合适的,因为(a)它对series元素进行排序,而不是对series元素中的单词进行排序,并且(b)为了支持sort_values,该方法已被弃用。

其思想是将一个字符串拆分成一个单词列表,按字母顺序排序,然后重新连接到一个字符串中。

结果:

代码语言:javascript
复制
                      col1
0            are hello you
1           happenend what
2          hello there you
3  in is issue our program
4       is name whatt your

或者,列表理解可能更有效:

代码语言:javascript
复制
sortdf['col1'] = [' '.join(sorted(x)) for x in sortdf['col1'].str.split()]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51449901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档