查找单词的子集-python itertools熊猫

问题描述 投票:1回答:1

[使用Python,我正在尝试创建长度为4和5个字符的词干列表,以便在类似Scrabble的游戏中使用。从我收集到的信息来看,我应该使用itertools,但是我仍然坚持将其与Pandas结合使用(我有一个包含所有单词的csv文件)。

我尝试使用在以前的线程中发现的内容来使用Pandas和Itertools,并提出了以下返回错误的内容:

from itertools import chain, combinations
import pandas as pd

def powerset(iterable):
    "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
    s = list(iterable)
    return chain.from_iterable(combinations(s, r) for r in range(4))

data = {'A':['hammers','hampering','hamburger']}
df = pd.DataFrame(data)

df['subset 4ch'] = df.apply(lambda row : powerset(row['A']), axis=1)

我在“锤子”子集列中的期望输出:嗯,弹药,毫米等,等等,嗯,等。

我该如何实现?

最终产品将是每个可能的词干及其出现的词的等级。我可以看到我的功能是创建元组,这是我最想要的最终产品吗?

谢谢您!

python pandas itertools
1个回答
0
投票

以这种方式尝试:

def powerset(iterable):
    "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
    s = list(iterable)
    return [''.join(i) for i in chain.from_iterable(combinations(s, r) for r in range(4, 5))] 

df['subset 4ch'] = df.apply(lambda row : powerset(row['A']), axis=1)
df
© www.soinside.com 2019 - 2024. All rights reserved.