如何将一列中的单词拆分然后在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个或多个单词)和数字的单行输入字符串拆分为[“名称”,“数字”]?