从 pandas 中构建不同单词的词汇表
Build a vocabulary of distinct words from pandas
我有一个名为“文章编号”的索引系列和一个名为“文本”的列。系列看起来像这样:
Article ID | Text
Article#1 This is a beautiful day
Article#2 I love you
Article#3 This is too late
Article#4 Love you back
Article#5 This is a lovely day
distinct_words = ['This', 'beautiful', 'day']
我想创建一个字典,它的键是不同的词,它的值是它所在的文章列表。
所以上面的例子是:
vocabulary = {"This":[Article#1, Article#3], "beautiful":[Article#1], "day":[Article#1, Article#5}
我写的是:
vocabulary ={}
for word in distinct_words:
filt = df.str.findall(word)
vocabulary[word] = df.loc[filt].index
但是我得到这个错误:
TypeError: unhashable type: 'list'
有人可以帮我解决这个问题吗?我尝试了一个嵌套循环,但由于我的原始文件很大,它需要几分钟,但问题需要在 40 秒内计算出来。有人告诉我使用 re 模块会很棒。
Series.str.findall()
returns 匹配值作为列表。您可以使用 Series.str.contains()
来查找列是否包含值。
for word in distinct_words:
vocabulary[word] = df[df['Text'].str.contains(word)].index.tolist()
我有一个名为“文章编号”的索引系列和一个名为“文本”的列。系列看起来像这样:
Article ID | Text
Article#1 This is a beautiful day
Article#2 I love you
Article#3 This is too late
Article#4 Love you back
Article#5 This is a lovely day
distinct_words = ['This', 'beautiful', 'day']
我想创建一个字典,它的键是不同的词,它的值是它所在的文章列表。 所以上面的例子是:
vocabulary = {"This":[Article#1, Article#3], "beautiful":[Article#1], "day":[Article#1, Article#5}
我写的是:
vocabulary ={}
for word in distinct_words:
filt = df.str.findall(word)
vocabulary[word] = df.loc[filt].index
但是我得到这个错误:
TypeError: unhashable type: 'list'
有人可以帮我解决这个问题吗?我尝试了一个嵌套循环,但由于我的原始文件很大,它需要几分钟,但问题需要在 40 秒内计算出来。有人告诉我使用 re 模块会很棒。
Series.str.findall()
returns 匹配值作为列表。您可以使用 Series.str.contains()
来查找列是否包含值。
for word in distinct_words:
vocabulary[word] = df[df['Text'].str.contains(word)].index.tolist()