我有train['final_input_text']
列,其中包含文本值。我在列表中有一组单词,需要与之匹配
train['final_input_text'].values
,如果匹配,则将单词保留在train['final_input_text']
中。
train['final_input_text'].values[1] = 'students would rather school home sometimes high poverty'
我尝试使用循环,但无法到达
text_df=train['final_input_text'].values
我只需要在train[final_input_text]
中保留与我的列表中的单词匹配的单词,这些单词有大约9000个单词。
答案 0 :(得分:1)
这将仅使用列表中的单词创建数据框
train = train[train['final_input_text'].isin(words_list)]
答案 1 :(得分:0)
如果列表中的单词是unigram,请遵循以下方法:
list_words = ['word1','word2','word3','word4']
for x in range(len(train)):
for w in list_words:
if w in train['final_input_text'][x]:
train['word in final_input'][x] = w
答案 2 :(得分:0)
您可以使用split功能来比较您的文字和特定单词。然后使用join函数将找到的匹配词聚合回单个字符串。
这是一个可行的示例:
df_text = pd.DataFrame({'final_input_text':['hello my name is Bob','I like the name Bob']})
In [1] : print(df_text)
Out[1] : final_input_text
0 hello my name is Bob
1 I like the name Bob
words_to_match = ['name', 'Bob', 'hello', 'world']
for index, row in df_text.iterrows():
words_to_keep = []
for word in row[0].split(' '):
if word in words_to_match :
words_to_keep.append(word + ' ')
df_text.loc[index, 'final_input_text']= ''.join(words_to_keep)
In [2] : print(df_text)
Out[2] : final_input_text
0 hello name Bob
1 name Bob