我有一个带有一列的pandas df,其中每个单元格包含莎士比亚戏剧中的一行文字(大约10万行)。我需要找到确切的字词(例如“罗马”),同时将出现在另一个单词(而不是“罗马”)中的模式排除在外。我不能排除像“罗马”这样的案件。或“罗马?”。
我与下面的代码行很接近,将“罗马”定义为变量,因此我可以轻松地用其他术语替换它,但仍然无法正常工作。
df[(df['COL'].str.contains(" " + VAR + " ")) | (df['COL'].str.contains(VAR + ";"))].nunique()
答案 0 :(得分:1)
您需要在包含的内容中添加regex = False,以获得所需的确切表达式。
df[df['COL'].str.contains('Rome', regex= False)]
答案 1 :(得分:0)
您需要为此使用正则表达式:
df = pd.DataFrame({
'COL': ['aRomeo', 'Rome', 'Rome?', 'Rome.', '!Rome!', 'djkfnjk Rome dsfln']
})
df.loc[df['COL'].str.lower().str.contains(r'\b\W?rome\W?\b')]