Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将一系列文本转换为单词列表_Python_Pandas - Fatal编程技术网

Python 将一系列文本转换为单词列表

Python 将一系列文本转换为单词列表,python,pandas,Python,Pandas,我有一个熊猫系列,每行有一个文本回顾: 我想将本系列转换为一个独特的列表,其中包含每个评论中出现的每个单词,例如: s=[['the','pizza','was','okay'…],['i','love','this','place','my','fiance','and','i','go'.] 预期产出: s=['the'、'pizza'、'was'、'okay'…、'i'、'love'、'this'、'place'、'my'、'fiance'、'i'、'go'…] 我尝试过使用tolist

我有一个熊猫系列,每行有一个文本回顾:

我想将本系列转换为一个独特的列表,其中包含每个评论中出现的每个单词,例如:

s=[['the','pizza','was','okay'…],['i','love','this','place','my','fiance','and','i','go'.]

预期产出:

s=['the'、'pizza'、'was'、'okay'…、'i'、'love'、'this'、'place'、'my'、'fiance'、'i'、'go'…]


我尝试过使用
tolist()
并进行一些循环,但我肯定错过了一些东西。解决此问题的好方法是什么?

将列表理解与扁平化结合使用:

out = [y for x in df['tokens'] for y in x]
或使用:

性能

np.random.seed(123)
N = 10000
L = list('abcdefghijklmno')

df = (pd.DataFrame({'A': np.random.choice(L, N),
                   'B':np.random.randint(1000, size=N)})
      .groupby('B')['A'].apply(list).to_frame('tokens'))
print (df)

In [269]: %timeit df['tokens'].sum()
15.1 ms ± 1.41 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [270]: %timeit out = [y for x in df['tokens'] for y in x]
360 µs ± 15.5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [271]: %timeit out = list(chain.from_iterable(df['tokens']))
215 µs ± 1.51 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
您可以简单地使用:

df['tokens'].sum()

因为它会把所有的列表加起来。

谢谢。问题是每个字母都被拆分,但在我的例子中,我希望将每个单词作为列表的一个元素。@sanna-因此需要
out=[y代表x.strip('[]')中的x['tokens']代表y。拆分(',')]
?@sanna-添加计时,
sum
可能不错,但速度较慢,但接受什么样的解决方案取决于你自己。谢谢你的解释!不是很慢。
df['tokens'].sum()