我有一个熊猫数据框, df :
Search term Match type
second hand proace toyota crew cab sale Broad match
bmw m5 buy Exact match
我想将nltk软件包中的ngrams应用于搜索字词列。 ngrams函数将返回一个元组。
我只希望短语作为最终输出,如下所示:
Phrases
second hand
hand proace
proace toyota
toyota None
bmw m5
m5 buy
buy None
这是我到目前为止发现的:
df['Phrases'] = df['Search term'].apply(lambda x: list(ngrams([x for x in x.split()], 2, pad_right=True)))
这是上面代码的输出:
Search term Match type Phrases
second hand proace toyota Broad match [('second', 'hand'), ('hand', 'proace'), ('proace', 'toyota'), ('toyota', None)]
bmw m5 buy Broad match [('bmw', 'm5'), ('m5', 'buy'), ('buy', None)]
如何解压缩列表中的所有元组并打印它们而没有逗号和括号?
答案 0 :(得分:0)
基于@Chris答:
['{} {}'.format(i, j) for i, j in np.concatenate(df.Phrases)]
结果将在列表中,因此您可以使用pd.DataFrame()
将其转换为数据框。
如果它是一个字母,只需将其更改为:
['{} {} {}'.format(i, j, k) for i, j, k in np.concatenate(df.Phrases)]