【发布时间】:2015-04-24 09:14:53
【问题描述】:
我有一个 pandas 数据框,其中有一列包含一些文本。我想修改数据框,以便在所有行中出现的每个不同单词都有一个列,以及一个布尔值,指示该单词是否出现在我的文本列中该特定行的值中。
我有一些代码可以做到这一点:
from pandas import *
a = read_table('file.tsv', sep='\t', index_col=False)
b = DataFrame(a['text'].str.split().tolist()).stack().value_counts()
for i in b.index:
a[i] = Series(numpy.zeros(len(a.index)))
for i in b.index:
for j in a.index:
if i in str.split(a['text'][j]:
a[i][j] = 1
但是,我的数据集非常大(200,000 行和大约 70,000 个唯一词)。有没有更有效的方法来做到这一点,不会破坏我的电脑?
【问题讨论】:
标签: python performance text pandas tokenize