我有一个pandas df栏,里面有一些文字。现在,我想将此文本的每个单词与列表中的元素进行比较,如果有匹配项,那么我想将该单词添加到新列中。虽然,我可以使用循环来提取这些内容(尽管不是很理想),但是当涉及不匹配的文本时,我将无法附加任何内容。对于前。
python列表: 身体部位= [“拇指”,“后背”,“肘部”,“肩膀”,“脚踝”,“腿筋”,“膝盖”]
此外,以下表达式仅部分执行该任务,并且在接收到匹配项或不匹配项时仅追加0或1。
input_file_1 ['bodyparts'] = input_file_1 ['Description']。apply(lambda x:sum(i in bodyparts for i in x.split()))............. .... 我可以使用其他任何表达式,实际上可以附加匹配的单词吗?
尽管,我可以使用循环来提取这些内容(尽管不是很理想),但是当涉及不匹配的文本时,我将无法附加任何内容。
此外,以下表达式仅部分执行该任务,并且在接收到匹配项或不匹配项时仅追加0或1。
input_file_1 ['bodyparts'] = input_file_1 ['Description']。apply(lambda x:sum(i in bodyparts for i in x.split()))
答案 0 :(得分:0)
我认为这可以完成工作。
bodyparts = ['thumb', 'back', 'elbow', 'shoulder', 'ankle', 'hamstring', 'knee']
def search_bodyparts(s, bodyparts):
found_bodyparts = [bodypart for bodypart in bodyparts if bodypart in s]
if len(found_bodyparts)>0:
return ', '.join(found_bodyparts)
else:
return None
df['bodyparts'] = df['Description'].apply(lambda x : search_bodyparts(x, bodyparts))