【发布时间】:2021-10-03 14:18:18
【问题描述】:
您好,我正在尝试过滤第二个元素以“V”开头的元组列表,以清理我的数据框。
我有一个 pandas 数据框调用“df_my_string”,例如:
一个样本是:
verbs_tokens
[('[', 'NNS'), ("'Europe", "''"), ('was', 'VBD'), ('always', 'RB'), ('the', 'DT'), ('future', 'NN'), ('.', '.'), ("'", "''"), (']', 'NN')]
[('[', 'IN'), ("'Europe", 'CD'), ('marks', 'NNS'), ('its', 'PRP$'), ('anniversary', 'NN'), (',', ','), ('it', 'PRP'), ('is', 'VBZ')]
我需要的是保留第二个值以“V”开头的每一行的元组
我尝试了很多方法,但我不知道如何:
#df_my_string['clean_verbs_tokens']=filter((lambda x: x[1].startswith('V')),df_my_string[['verbs_tokens']])
#df_my_string['clean_verbs_tokens'] = df_my_string.verbs_tokens.apply(lambda x: str(x[0][1]).startswith('V'))
#df_my_string['clean_verbs_tokens'] = df_my_string.verbs_tokens.apply(lambda x: str(x[0][1]).startswith('V'))
#df_my_string['clean_verbs_tokens'] = [tup for tup in df_my_string['verbs_tokens'] if str(tup[0][1])=='V']
#df_my_string['clean_verbs_tokens'] = [item for item in df_my_string['verbs_tokens'] if pd.Series(re.search('^V.*',item[0][1])).reset_index(drop=True).values]
预期输出:
verbs_tokens
[('was', 'VBD')]
[('is', 'VBZ')]
【问题讨论】:
标签: python pandas list tuples nltk