如何将一列中的单词拆分然后在Python中将单词整合在一起,即二维列表到一维列表?

Posted

技术标签:

【中文标题】如何将一列中的单词拆分然后在Python中将单词整合在一起,即二维列表到一维列表?【英文标题】:How to split the words in one column then integrate the words together in Python, i.e., two dimensional list to one dimensional list? 【发布时间】:2019-12-14 15:07:22 【问题描述】:

我的数据是:

a=pd.DataFrame('sentences':['i am here','bye bye','go back home quickly'])

当我使用 split 时,我可以将字符串转换为单个单词:

a.loc[:,'sentences1']=a.loc[:,'sentences'].astype(str).str.split(' ')

结果是:

              sentences                 sentences1
0             i am here              [i, am, here]
1               bye bye                 [bye, bye]
2  go back home quickly  [go, back, home, quickly]

现在,我想将列表整合到“sentences1”列中,然后删除重复项。所以它看起来像:

[i, am, here, bye, go, back, home, quickly]

我该怎么做?

【问题讨论】:

【参考方案1】:

您可以使用itertools.chain.from_iterable 将列表列表与dict.keys 扁平化以消除欺骗并维护秩序:

import itertools
[*itertools.chain.from_iterable([dict.fromkeys(i.split()).keys() for i in a.sentences])]

或者使用OrderedDict:

from collections import OrderedDict
[*itertools.chain.from_iterable([OrderedDict.fromkeys(i.split()).keys() 
                                                for i in a.sentences])]

['i', 'am', 'here', 'bye', 'go', 'back', 'home', 'quickly']

【讨论】:

酷!非常感谢。

以上是关于如何将一列中的单词拆分然后在Python中将单词整合在一起,即二维列表到一维列表?的主要内容,如果未能解决你的问题,请参考以下文章

基于另一列从一列中删除单词,然后创建并将其放入新列

如何在Python中将具有名称(1个或多个单词)和数字的单行输入字符串拆分为[“名称”,“数字”]?

将一列中的字符串拆分为表维护 ID 的多个分隔符

如何将单独列中冒号前后的单词拆分为sql中的行

如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?

在c ++中将单词拆分为字母? [关闭]